言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

コンビネータ!コンビネータ!コンビネータ!

コンビネータというのは、「なにか二つがくっついて一つ何かが生まれる」という単純なルールで何でもかんでも表現する物です。一つ何かが生まれるというのが曲者で、「カリー化」という考えを使って三つ以上から二つ以上の物が生まれても「準備中」の状態を一つと考えるという無理やりな考え方がちょっと分かりにくいけど、基本はシンプルな物です。そのコンビネータが僕の最近のマイブーム!です。

一番最初は、もっと単純な Brainfuck のような物を探していて、それにはバックグラウンドとしてコンビネータという考えがあるという事が分かった。自分なりに色々勉強していたんだけど、コンビネータが好きになると突然コンビネータの事ばかり考えだして、なぜかコンビネータばかり見えるようになってきた。まずはアレックスが変なゲームを教えてくれた。http://worrydream.com/AlligatorEggs/ そして伊藤さんの日記http://d.hatena.ne.jp/nqthm/20070509/p1 で、Joy というコンビネータを元にした言語 http://www.latrobe.edu.au/philosophy/phimvt/joy.html が紹介されていた。実は Joy がどうコンビネータなのか理解してないが、何となくかっこいい!そういえば前から関数合成 . はコンビネータ臭いと思っていたのでした。

コンビネータって言葉、昔は嫌いだったんだけど(ただの関数なのに格好つけるなよ!と思ってた)、なんか最近コンビネータの渋みが分かってきたような気がする。コンビネータ!いいねぇ。

関係ある日記。