あと味

たくさん情報を食べて、たくさん発信すると、あとになって味わい深い。

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>

*1:なんでカリー化して遊ぼうと思ったかと言うと、記法がOCamlに見えてきたから