2007-11-01から1ヶ月間の記事一覧

Gmailのチェッカー

Google Talkを使ってたけど、友達がいないのでIMなんて使いません。 だもんで、GMailのメールチェッカーとしてしか利用してませんでした。 最近、IM機能はいらないのでメールチェックだけしてくれる手軽なクライアントを作ってみたいと思った。 だけど、何か…

The Littile Schemer 8章"Lambda the Ultimate"読了

最後の関数、evens-only*&coも難しいです。 何がムズいって、(car l)がリストだった時の書き方かなぁ...。 要素が数字のみのネストしたリストlを受け取って、奇数だけ除去して返す関数evens-only*を継続渡しスタイルに書きなおす問題です。 参考までに、継続…

継続渡しスタイルの練習

アトムatomと、アトムからなるリストlatを受け取り、latの中にatomが含まれるかどうかを調べる以下のような関数 (define contains (lambda (atom lat) (cond ((null? lat) #f) ((eq? (car lat) atom) #t) (else (contains atom (cdr lat)))))) を、multiremb…

キーボード

ここ数ヶ月くらいFILCOのキーボードを使っています。 とてもいいです。 HHKと迷いましたが、仕事ではVisualStudioにて開発しているので、ビルドするときなんかのショートカットキーをそのまま使いたくて、ファンクションキーがあるコイツにしました。 ...で…

Meadowやめた

半年に1回くらいの割合でWindowsを再インストールしてる気がする。 入れ替えた時のサクサク動く感じが好き。 再インストールしなくても、デフラグちゃんとやってやればいいのかな...? まぁ、さておき。 再インストールをきっかけに、MeadowやめてEmacsw32に…

multiinsertLR&coを書いてみた

これだよ、これ! 継続渡しスタイルの関数を1から自分で書けるようになるには、書く練習しなきゃね! ということで、以下のようなmultiinsertLR関数を、継続渡しスタイルで書き直す練習です。 (define multiinsertLR (lambda (new oldL oldR lat) (cond ((nu…

継続に無理やり名前をつけてみた

どうやらletという関数を使うと、ローカルな名前付の関数を作れるらしい。 ということで、簡単なfact/cpsでやってみる。 (define fact/cps (lambda (n cont) (if (= n 0) (cont 1) (fact/cps (- n 1) (lambda (m) (cont (* m n))))))) で、else以下で作って…

multirember&coをトレースしてみる

fact/cpsでやった要領で、multirember&coもトレースしてみる。 っていうか、今からやるようなことはちゃんと本でやってますね。 継続渡しがわかんねワカンネ言ってましたが、継続渡しが分からないんじゃなくて英語が読めてないだけでした。 僕くらい脳みそが…