Life Goes On

まあまあだけど楽しんでる方です

計算

フィボナッチ数の計算時間を考える

諸般の事情により、相変わらずフィボナッチ数と格闘中です。何人かの方が既に書かれていますが、フィボナッチ数を高速に計算する方法があります。 細かいバリエーションはありますが、以下のような漸化式を利用します。 F2n-1 = Fn-12 + Fn2 F2n = 2Fn-1Fn +…

SKS = I

なんで SKK = I なんだっけと考えていて、SKKx = Kx(Kx) = x で (Kx) は無視されるから、二つ目の K は他のコンビネータ(例えば S)でもいいよなと思ったわけです。 s x y z = x z (y z) k x y = x というように、Haskellで定義して実行すると、上手くいき…

カリー化ふたたび

以前に書いたセミナーの振り返り(カリー化、部分適用、その他の話題 - Life Goes On)について、通勤電車でつらつら考えていて、小さいラムダ式と大きいラムダ式を区別するには、モナドなし/あり2つの Arrow を使えばいいんじゃないかと思いました。 つま…

オダンゴ

記号操作は好きですが、そうやってできた閉じた世界から抜け出すのは、なかなかどうしてムズカシイです。

カリー化、部分適用、その他の話題

前回のエントリに対して、m-hiyama さんから、色々と指摘をいただきました。 以下に訂正を、と思ったら、先に bonotake さんに書かれてしまった。 そもそも問題はというと、「ラムダ抽象=カリー化」という前提を僕が理解していなかったのが、いけなかったの…

「技術者/プログラマのためのラムダ計算、論理、圏」セミナー第2回

行ってきました。自分なりに復讐、もとい復習。 前半はラムダ計算の話。 たとえば g = という関数を考えるとき、g^ = 、g^^ = 、g^^^ = という関数を作ることができる(これがラムダ抽象?)。 絵にすると↓こんな感じ。 これを見てて思ったのが、↓みたいに定…

積ん読

『スマリヤンの決定不能の論理パズル』1 型の推論者で既に混乱しているのに、4 型の推論者とか出てきて泣きそう。紙と鉛筆がないと読めないし、遅々として進まず。 『To Mock a Mockingbird』Amazon で ¥1,500 以下だったので、脊髄反射でクリック。↑が終わ…

「技術者/プログラマのためのラムダ計算、論理、圏」セミナー

昨日、行ってきました。 こういう話(カリー・ハワード対応がどうとか)を聞く機会はあまりないので、とても楽しめました。 いよいよラムダというところで、時間切れに。→次回も参加します。 7 時までに帰る約束だったので、終わった後の食事会に行けず。→次…