2008-01-22から1日間の記事一覧

くみくみスロープ

面白い

末尾再帰的

Scheme の実装は真正に末尾再帰的であることが要求されている。 だって。末尾呼び出しの最適化を実装していないとSchemeではないらしい。実装できるかなー。 Unlambdaを実装したときにcall/ccは作ったんだけど、あんな感じでいいのかな。継続を毎回渡して、…

R5RS

疑問に思ったことはたいがいR5RSを読んだら書いてある。 PythonでR5RSに相当するものはPython ライブラリリファレンスとPython リファレンスマニュアルだ。 HaskellでR5RSに相当するものは何だろう。The Haskell 98 Language Reportでいいのかな?

アパッチ

思ったより近かった。

Scheme通勤

>>> ConsList([]) () >>> ConsList([1]) (1 . ()) >>> ConsList([1, 2]) (1 . (2 . ())) >>> ConsList([1, 2, ".", 3]) (1 . (2 . 3)) >>> ConsList([1, [10, 20], ".", 3]) (1 . ((10 . (20 . ())) . 3)) ここまでできた。 (1 . (2 . ()))を(1 2)って表示す…

ねむい

日々わからないことが増えていく 操作的意味論 - Wikipedia CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 CPS(継続渡し方式)変換で裏返る理由 - 檜山正幸のキマイラ飼育記 反変関手

Re: 関数プログラミングのアプローチ (6) 前半

関数プログラミングのアプローチ (6) - lethevert is a programmer http://d.hatena.ne.jp/lethevert/20071027/p1咀嚼中。 __next__のような2つのアンダーバーで囲まれたメソッドはPython処理系が特殊な意味のメソッドを実装するためのものなので勝手に使う…

Re: 関数プログラミングのアプローチ (3)

関数プログラミングのアプローチ (3) - lethevert is a programmer http://d.hatena.ne.jp/lethevert/20071014/p2咀嚼中…。スコープが切り替わるんだ、ってところがピンと来にくいので関数呼び出しで置き換えてみた。 class RandState(object): def __init__…