Exercise 2.11 (2)
またまたちょっとだけ。
設問の記述に沿って試験を書いてみます。
(use gauche.test) (add-load-path ".") (load "lambda-calculus-subst") (test-start "lambda-calculus-subst") (test-section "lambda-calculus-subst") (test* "occurs-bound" '(lambda (p0) (+ p0 (* p 3))) (lambda-calculus-subst '(lambda (p) (+ p x)) '(* p 3) 'x)) (test* "occurs-free" '(lambda (q) (+ q (* p 3))) (lambda-calculus-subst '(lambda (q) (+ q x)) '(* p 3) 'x)) (test-end)
なんか微妙ですがご容赦下さい。
ぐげ
lambda 式は例のアレな記法になってないと駄目なのか。あと subst な手続きで prim-app な式が追加になってるので expression.scm に追加が必要。ちょい時間切れ気味なので TODO 列挙して次につなげます (ぇ
- 渡すものと戻ってくる式は expression な S 式なので試験の修正が必要
- lambda-expression-subst で primapp-exp なる要素が追加になっているので expression.scm と fresh_id.scm の修正が必要
- と思ったら lexical-address と expression が混在してます (とほほほ
これ、ナメて片手間にやるとヤバいのかも。