通过幺半群实现 Fizz Buzz
本文介绍了使用“守卫序列”模式和幺半群(Monoid)接口实现 Fizz Buzz 算法。
代码通过 `guard` 函数检查数字是否能被 3、5 或 7 整除,并根据结果生成 `Just "fizz"`、`Just "buzz"` 或 `Nothing` 的列表。
`mconcat` 函数将这些列表中的 `Just` 值连接成字符串,而 `Nothing` 值则被 `fromMaybe` 函数替换为数字的字符串表示。
最后,代码循环遍历 1 到 100 的数字,应用 Fizz Buzz 转换并打印结果。
查看原文开头(英文 · 仅前 3 段)
We have previously seen the guard-sequence pattern which sits at the core of
this implementation. The expression
In[3]:
※ 出于版权考虑,仅引用前 3 段。完整内容请阅读原文。