近年関数型プログラミング言語が注目されています。手続き型/オブジェクト指向型言語にはない利点を持ち、Haskell/OCaml/Scala/Erlangなどの関数型言語が、意識の高い開発者の中で話題になることも多くなってきています。
「Mochi」もそのような関数型言語の一つ。動的型付け関数型言語で、アクタースタイルのプログラミングをサポートしています(アクターとは)。
シンタックスはPython風なので、Pythonを使える開発者ならば馴染みやすいかもしれません。例えば階乗計算は以下のようになります。
def factorial(n, m):
if n == 1:
m
else:
factorial(n - 1, n * m)
factorial(10000, 1)
# => 28462596809170545189064132121198688...
# Or
def factorial:
n: factorial(n, 1)
0, acc: acc
n, acc: factorial(n - 1, acc * n)
factorial(10000)
# => 28462596809170545189064132121198688...
FizzBuzzも次のようにに記述することができます。
def fizzbuzz(n):
match [n % 3, n % 5]:
[0, 0]: "fizzbuzz"
[0, _]: "fizz"
[_, 0]: "buzz"
_: n
range(1, 31) |> map(fizzbuzz) |> pvector() |> print()
プログラミングの名著、「達人プログラマー」では毎年新しい言語を1つ学ぶこと」推奨していました。Mochiのような様々な新要素が詰め込まれたプログラミング言語を学ぶことは、多くの開発者にとってよい経験となるでしょう。間もなくやってくる2015年の正月休みは、おもちを食べながらMochiの勉強をしてみると良いかもしれません。なお作者のブログではMochiに関する様々な情報を日本語で読むことができます。