EoPL reading (127) 2.3 Representation Strategies for Data Types
昨晩の懇親会開始待ちで検討したナニです。。直前エントリの続きです。スデに呑み屋の中。一人でビール呑みながらノート開いてるさまは微妙にちがいない。
まず t が var-term のケイス。
- u が var-term だと unit-subst 呼び出し
- u が var-term 以外だと
- u が constant-term だと unit-subst 呼び出し
- u が app-term でその中に t の id が含まれてなければ unit-subst 呼び出し
上記を試験で表現してみると以下?
(test* "(unify-term '(var-term x) '(var-term y))" (extend-subst 'x (var-term 'y) (empty-subst)) (unify-term '(var-term x) '(var-term y))) (test* "(unify-term '(var-term x) '(constant-term 1))" (extend-subst 'x (constant-term 1) (empty-subst)) (unify-term '(var-term x) '(constant-term 1))) (test* "(unify-term '(var-term x) '(app-term ((var-term y))))" (extend-subst 'x (app-term ((var-term 'y))) (empty-subst)) (unify-term '(var-term x) '(app-term ((var-term y)))))
続きは別途。