X-Git-Url: https://git.rkrishnan.org/?p=sicp.git;a=blobdiff_plain;f=src%2Fsicp%2Fmetacircular2-lazy.rkt;fp=src%2Fsicp%2Fmetacircular2-lazy.rkt;h=5e036ee8e3f75dea131396188a6a48b6fbc5fc26;hp=b41ab4bae60c3eba689ca2f9ae59341f345d8f71;hb=041983d7ecd6d276519708c91c1959f06b41c06e;hpb=c6a6e187ad34b393587f51d181e2751f82f41aff diff --git a/src/sicp/metacircular2-lazy.rkt b/src/sicp/metacircular2-lazy.rkt index b41ab4b..5e036ee 100644 --- a/src/sicp/metacircular2-lazy.rkt +++ b/src/sicp/metacircular2-lazy.rkt @@ -97,7 +97,9 @@ (list '/ /) (list '= =) (list '> >) - (list '< <))) + (list '< <) + (list 'newline newline) + (list 'display display))) (define (primitive-procedure-names) (map car primitive-procedures)) @@ -142,6 +144,7 @@ (define (procedure-environment p) (cadddr p)) (define (apply procedure arguments env) + ;;(display (format "~s~%" arguments)) (match procedure [`(primitive ,f ...) (apply-primitive-procedure procedure (list-of-arg-values arguments env))] [`(procedure ,f ...) (eval-sequence @@ -229,11 +232,17 @@ ;; thunks (define (actual-value exp env) + ;(display (format "eval expr ~s~%" exp)) + ;(newline) (force-it (eval exp env))) (define (force-it obj) + ;; (display (format "~s~%" obj)) (match obj - [`(thunk ,exp ,env) (actual-value exp env)] + [`(thunk ,exp ,env) (begin + ;(display (format "eval's output ~s~%" obj)) + ;(newline) + (actual-value exp env))] [_ obj])) (define (delay-it exp env)