python のスーパーセットな関数型言語 Coconut を試す
パイプライン演算子が使える言語がないか探していたところ Coconut というものを見つけました。
公式の説明を見ると
なにそれ面白そう。 という事で、ちょっと触ってみました。
インストールは
$ pip install coconut
でいけますが、http://coconut-lang.org/ の上の方に web の実行環境があるので、ちょっと試すならこれで十分です。
さっそく hello world
"hello, world!" |> print
次は無名関数 & 部分適用 & 関数合成。
add = (x, y) -> x + y add1 = add$(1) prd = (x, y) -> x * y prd2 = prd$(2) (add1 .. prd2)(1) |> print # -> 3 (prd2 .. add1)(1) |> print # -> 4
部分適用する関数には $ をつけるみたいですね。 これは Python との互換を保つために必要なんでしょうか。
最後にいつもの偶数自乗和
result = ( range(10) |> filter$((n) -> n % 2 == 0) |> map$((n) -> n * n) |> reduce$((acc, n) -> acc + n) ) print(result) # -> 120