SICPを読む(110) 3.3.5 制約の拡散
熱い。熱すぎる。もっと頭を熱くするにはSICPがいいよね。
今回は制約システム(プログラミング)を利用して方程式を解けるようにするらしい。
ところで制約システム(プログラミング)ってなんぞ?
- 制約プログラミング - Wikipedia
- ほうほう。Prologみたいなもんらしい。
- プログラム不要の「制約プログラミング手習い」|Karetta
- 激しく素晴らしい。Sugarという処理系を使った制約プログラミングの解説。
ルールを記述して、解くのはコンピュータに任せよう。
うは。スゲー。
用語のまとめ
- 一方向計算
- 前もって引数に演算を実行し望みの出力を生じる
- 方程式
- 速さ = 距離 / 時間 、2つの値が決まればもう一方も決まる。
- 基本制約
- (adder a b c)でa + b = cという制約を表す。
- (constant 3.14 x)で、xの値は3.14という制約を表す。
- コネクタ
- 一つか複数の基本制約を保持するオブジェクト。
- これらを組み合わせて制約ネットワークを構成する。
そうだJavaScriptで書こう
SchemeでOOPライクに書くのは面倒杉なので、JavaScriptで書こうと思う。
が・・・JavaScriptの継承がわからないので、JavaScriptの継承をお勉強しながら進める事にする。
続く・・・が・・・ちと忙しいっす。
発展編
- Scheme:制約の拡散
- Think IT - 第1回:プログラミングの常識を疑え! (1/3)
- 制約の拡散の行き着く先について