4.4 KiB
title | author | date | url | wordtwit_post_info | categories | |||
---|---|---|---|---|---|---|---|---|
schemeプログラムのレベルで行くと、レベル3ぐらい? | kazu634 | 2010-02-11 | /2010/02/11/_1470/ |
|
|
「Scheme:Schemeプログラマのレベル10」を発見。自分のレベルで行くと、レベル3ぐらいかな?
レベル3
mapの便利さに目覚めて、なんでもかんでもリストにしてからmapしまくる。 letrecやinternal defineによるローカル関数定義を多用するようになる。
自分のwebサイトのドキュメントをSchemeを使ったフィルタで生成するとか、 普段から使える個人用のプログラムをSchemeで書き始める。 後に、そのコードの半分はsrfi-1とsrfi-13にある関数の再実装であったことに気づく。
call/ccを非局所脱出やコルーチンに使ってみて、 なるほど、確かに動くな、と思うが、それ以上の応用は思い浮かばない。
普段常用するマシンに色々な処理系をインストールしまくる。
たまにC言語に戻った時に printf(“%s: %d?n” name value); と書いて 何故コンパイルエラーになるのか悩む。
暇ができたら、レベル4へステップアップを目指す!!!
レベル4
ループを書くのにnamed letを自然に使うようになる。 C言語でもつい再帰で書いてしまうようになる。 何故forループがあんなに欲しかったのかわからない。 クロージャが環境を捕捉する、ということが具体的にイメージできるようになる。 関数を関数に渡すことに抵抗がなくなる。
特定の処理系を深く使い込むようになる。 リストだけでなくベクタやハッシュテーブル、オブジェクトシステム等を ぼちぼち使うようになる。 簡単なコード生成にマクロを少し使ってみる。
ライブラリに不足を感じ、マイライブラリを作りはじめる。
Emacs?でC-M-bやC-M-fなどのS式を扱うキーを無意識のうちに使うようになる。