プログラミング再入門

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

2014-04-01から1ヶ月間の記事一覧

SICP 4.4.2 How the Query System Works

ノート 明らかにquery evaluatorは何らかの探索を行う。 一つの方法は非決定論的プログラミングでambを使った実装。もう一つはストリームを使う実装。(ここではストリームで実装する) query systemは大きく分けて二つの操作からなる:パターンマッチと単一…

SICP 4.4 Logic Programming

Nondeterministic Computingで少し雰囲気を感じつつ、ついに論理プログラミングに到達。 第5章はまた毛色が違う話なので、ここが一つの到達点なのかな。 ノート 数学はdeclarative(宣言的)、コンピュータサイエンスはimperative(命令的)。 高級言語にな…

SICP 4.3.3 Implementing the Amb Evaluator

ここで漸く実装部分。 ノート 普通のschemeの式であれば値が返るか、永久に返って来ないか、エラーで止まる。非決定論的schemeではそれに加えて行き止まりに辿り着いた時に選択ポイントまで戻って評価をやり直すと言う動作が追加される。 バックトラックを実…

SICP 4.3.2 Examples of Nondeterministic Programs

ノート 非決定論的プログラムの例。 組み合わせ生成とフィルタリングする部分をシステム側に隠す事で、プログラムはより抽象化されて問題をストレートに表現出来る。 Logic Puzzles 『ニコリ』の推理パズル。 プリミティブにequal?を足してmemberを定義。abs…