コラッツ予想がとけたらいいな2

自分の考察を書いていきます。

すごいFizzBuzz

すごいFizzBuzzがあったので紹介します。

let (m ~> str) x = str <$ guard (x `mod` m == 0)
in map (fromMaybe . show <*> 3 ~> "fizz" <> 5 ~> "buzz")

何が何だかさっぱりですね!
これだけの機能を使っています。

1行目
~>内のMaybeオルタナティブ(モノイド+アプリカティブ)でguard
~>内のMaybeファンクターで(<$)

2行目
・ 関数モノイド
Maybeモノイド
[](String)モノイド
・ 関数アプリカティブの<*>


また、依存型のFizzBuzzもあるみたいです。

.
.


一方Egisonはパターンマッチを使った。

fizzbuzz' =
  matchLambda as mod(15)
    | 0                   -> "FizzBuzz"
    | (3 or 6 or 9 or 12) -> "Fizz"
    | (5 or 10)           -> "Buzz"
    | $x                  -> x

.
.