プログラミング再入門

プログラミングをもう一度ちゃんと勉強する読書ノート

2012-03-01から1ヶ月間の記事一覧

Scheme修行 第14章 名前をつけましょう(その1)

ローカルな変数を作るletを習います。 ノート: leftmost leftmostのおさらい。 leftmostは S式に適用し アトムを値とする その値は S式の先頭要素がアトムの場合、そのアトム S式の先頭要素がアトムでない場合(リストの場合)、そのリストにleftmostを適用…

Scheme修行 第13章 ホップ、スキップ、ジャンプ(その2)

letccの続きです。 ノート: rember remberでもaが不変なのでletrecを用いて再定義出来る。 > (rember 5 '(1 2 3 4 5 6 5 4 3 2 1)) (1 2 3 4 6 5 4 3 2 1) > multiremberではないので最初の5だけが削除される。rember-beyond-firstはあるアトム以降の要素を…

Scheme修行 第13章 ホップ、スキップ、ジャンプ(その1)

ここではcall-with-current-continuationを習います。この本では単にletccと言う名前になっています。処理系によってはcall/ccと言う名前もある様ですが、DrRacketではフルスペルでcall-with-current-continuationが使われています。 ノート: intersectall …

Scheme修行 第12章 避難しましょう(その2)

letrecを使った既出の関数の再定義が続きます。 ノート: union member?のおさらい。ラットの中に指定のアトムが含まれていれば#t。そうでなければ#f。letrecを使って再帰の際にaを渡さない版が定義出来る。関数名のyes?はあまりしっくり来ない。また、letre…

Scheme修行 第12章 避難しましょう(その1)

ローカルな関数を定義する手段としてletrecを習います。letrecを用いる目的は: ローカルな関数を定義してそれに名前をつける事により、Yコンビネータを使わずにかつグローバルな名前を増やさずに再帰関数を定義する。(Yコンビネータを使うには再帰算数をそ…

Scheme修行 第11章 おかえりなさい、ようこそショーへ

随分間があいてしまいましたが『Scheme手習い』に引き続き『Scheme修行』を勉強します。続きなだけに章番号まで続きになんですね。これまでリストに関数を再帰的に適用する場合に空リストから積み上げて結論を得ていました。リストでは右側から考えていた事…