2012-03-01から1ヶ月間の記事一覧
ローカルな変数を作るletを習います。 ノート: leftmost leftmostのおさらい。 leftmostは S式に適用し アトムを値とする その値は S式の先頭要素がアトムの場合、そのアトム S式の先頭要素がアトムでない場合(リストの場合)、そのリストにleftmostを適用…
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はあるアトム以降の要素を…
ここではcall-with-current-continuationを習います。この本では単にletccと言う名前になっています。処理系によってはcall/ccと言う名前もある様ですが、DrRacketではフルスペルでcall-with-current-continuationが使われています。 ノート: intersectall …
letrecを使った既出の関数の再定義が続きます。 ノート: union member?のおさらい。ラットの中に指定のアトムが含まれていれば#t。そうでなければ#f。letrecを使って再帰の際にaを渡さない版が定義出来る。関数名のyes?はあまりしっくり来ない。また、letre…
ローカルな関数を定義する手段としてletrecを習います。letrecを用いる目的は: ローカルな関数を定義してそれに名前をつける事により、Yコンビネータを使わずにかつグローバルな名前を増やさずに再帰関数を定義する。(Yコンビネータを使うには再帰算数をそ…
随分間があいてしまいましたが『Scheme手習い』に引き続き『Scheme修行』を勉強します。続きなだけに章番号まで続きになんですね。これまでリストに関数を再帰的に適用する場合に空リストから積み上げて結論を得ていました。リストでは右側から考えていた事…