CoffeeScriptでカリー化関数を書いて遊ぶ
CoffeeScript、食わず嫌いしてたのですが、使ってみると便利で、書いてて楽しいですね。
記法が簡潔なので、JavaScriptだとreturn function
地獄になるカリー化関数書くのが苦ではなかったので、カリー化関数を書いて遊んでみました。
calc.coffee
これがCoffeeScriptのソース。
calc.js
これがコンパイルされたJavaScriptのソース。
カリー化関数
「お前のプログラム柔らかいな、柔軟剤使ったろ?」ってくらいプログラムが柔軟になりますね。
今回のソースでは、オペレーターを自分でプチ定義しちゃってるような感覚があります。
このテクニックを実務で使ったことはありませんが、CoffeeScriptだと、見た目も簡潔で良いかも。*1
カッコが省略できたら、会話するようにプログラミングができるのに。
CoffeeScript
プログラミング初学者には導入の敷居が高いですが、教育用のプログラミング言語として良い気がしています。
CoffeeScriptの公式サイトにいけば、REPLがあるので、気軽に試せていいですね。
追記
やっぱりOCamlに似てるの気のせいじゃない気がするなぁ。
# let calc x op y fillin = fillin op x y;; val calc : 'a -> 'b -> 'c -> ('b -> 'a -> 'c -> 'd) -> 'd = <fun>