2011-11-25 CoffeeScriptでカリー化関数を書いて遊ぶ
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>
トラックバック - http://d.hatena.ne.jp/jdg/20111125/1322213980
リンク元
- 73 http://higashizm.sakura.ne.jp/jquery_first/
- 35 http://www.google.co.jp/url?sa=t&rct=j&q=jsonp&source=web&cd=3&ved=0CD0QFjAC&url=http://d.hatena.ne.jp/jdg/20090902/1251851867&ei=2zLRTsSGJoTkmAW9ouC5BA&usg=AFQjCNEtyxwWs-7y83OoXKEAzGpwTCO_Sg&sig2=26ul6XzPzjUsSqR3uNbQjw
- 22 http://reader.livedoor.com/reader/
- 18 http://www.google.co.jp/url?sa=t&rct=j&q=javascript call&source=web&cd=1&ved=0CDQQFjAA&url=http://d.hatena.ne.jp/jdg/20100515/1273903873&ei=dIHPTpGlH4zHmQXQje3QDQ&usg=AFQjCNGxN9JlEg3OGg5uyuVecPsfYw0kZw&cad=rja
- 14 http://bit.ly/u4Djc5
- 14 http://www.facebook.com/l.php?u=http://d.hatena.ne.jp/jdg/20111125/1322213980&h=qAQFq61fXAQHOUk5yQLXh8T0foruoLCEVZtRMnDNmx6BoiA
- 14 http://www.google.co.jp/url?sa=t&rct=j&q=インセプション+結末&source=web&cd=3&ved=0CDsQFjAC&url=http://d.hatena.ne.jp/jdg/20100724/1279995887&ei=infPTqWeLvHmmAWz34neDQ&usg=AFQjCNHal
- 12 http://www.google.co.jp/url?sa=t&rct=j&q=メソッドチェーン&source=web&cd=1&ved=0CDMQFjAA&url=http://d.hatena.ne.jp/jdg/20100307/1267962826&ei=jHvNTpbCE4XjmAWuz4GgDQ&usg=AFQjCNFyXrhVQk8YetC
- 11 http://www.google.co.jp/url?sa=t&rct=j&q=エクセルに貼り付けた写真を取り出す&source=web&cd=1&ved=0CCUQFjAA&url=http://d.hatena.ne.j
- 10 http://b.hatena.ne.jp/entrylist


