いうわけで、以下はYコンビネータのおさらい。Schemer"の第9章の翻案ともいう。再帰を含む関数を用意する。4.8のフィボナッチ名前付きlet版。いうプロシージャが世界のどこかでよろしく定義されていると妄想する。n))再帰しないですむようになったので、もうletに名前はいらない。それで、ついでにletをlambda式にしておいた。中にはきっと再帰があるだろう。妄想し、......嘘をつき続けなければならない。そこで発想を飛ばして、「fib-iter-1を妄想する」ことを抽象化してみよう。分かりにくいけど、妄想したいものを受け取ってfibの中身のlambdaを返してくれるようなプロシージャを作ればいい。1)))))ただし現実には「妄想の果て」が必要になる。妄想なんだけど、とりあえず果てに行き付いたので無理矢理納得することにする。n))ここで再び発想を飛ばして、今度は「妄想の果て」を抽象化する。それには、妄想を受け取って妄想を返し続けるようなプロシージャを作ればいい。こんな禅問答のようなプロシージャが考えられる。fib-iter))これってつまり「関数を自分にぶちこむ」ってことなので、「再帰する」ことを抽象化しているとも考えられる。ところが、実はこれだけだと果てしなく続く妄想だけになっちゃて、妄想の仕様が何も分からない。仕様がないものは使いようがない。そこで、まずは妄想を整形してやって、それを「果てしなく続く妄想」に渡すようにしてやりたい。いま考えているfib-iterでは3つの引数(a,b,const)を使っているので、この「妄想の果て」も3つの引数をとるプロシージャを返すようにしないといけない。z))))))妄想delusionを受け取って、それを3引数を取るプロシージャの形にして、後はひたすら妄想を続けるというノリ。これがYコンビネータ。Yコンビネータは、妄想を使えるものにするための、どっちかっていうとテクニカルな細工なんだと思う。以上をfibに取り込むと、こうなる。n))もうすっかり妄想が抽象化されつくしたので、これはフィボナッチ数列のn項を求めるプロシージャとしてちゃんと評価される。(8)tempツインピークスで、クーパー捜査官がこうつぶやくシーンがある(wikiquote)。...同じグループの同僚が鼻歌まじりで仕事してたりすると、不思議に自分も仕事に集中できるもんなんだな。集中...名前付きletをlambda式にしたい。出版される前の本の内容は、通常は著者や編集者に代表される「制作サイド」の人間にしか読まれない。専門性の高い本であれば査読とか監修といったプロセスを有識者にお願いすることはあるけど、そうしたお願いをするときには有償だったりカバーや袖に名前を出したりすることが多いので、これも「...職務経歴書いろいろあって職務経歴書を作成してみることにしました。機能を使うのが一番お手軽です。編集をお手伝いしました。Blogger.自己紹介Unknown詳細プロフィールを。