Improve 4.8
parent
23a8766b45
commit
6b0dbdff6b
|
@ -197,19 +197,20 @@
|
|||
((named-let? exp)
|
||||
(let ((let-name (named-let-var exp))
|
||||
(let-variables (named-let-vars exp))
|
||||
(let-expressions (named-let-exps exp)))
|
||||
(cons
|
||||
(list 'define
|
||||
(cons let-name let-variables)
|
||||
(cons 'begin (named-let-body exp)))
|
||||
let-expressions)))
|
||||
(let-expressions (named-let-exps exp))
|
||||
(let-body (named-let-body exp)))
|
||||
(list
|
||||
'let
|
||||
(cons (list let-name (make-lambda let-variables let-body))
|
||||
(named-let-bindings exp))
|
||||
(sequence->exp let-body))))
|
||||
(else (error "Unsupported let expression -- LET->COMBINATION"))))
|
||||
|
||||
(assert (let->combination '(let ((a 3) (b 4)) (* 3 a b)))
|
||||
'((lambda (a b) (* 3 a b)) 3 4))
|
||||
|
||||
(assert (let->combination '(let fib-iter ((a 1)) (fib-iter (+ a 1))))
|
||||
'((define (fib-iter a) (begin (fib-iter (+ a 1)))) 1))
|
||||
(assert (let->combination '(let fib-iter ((a 1)) (fib-iter (+ a 1)) 3))
|
||||
'(let ((fib-iter (lambda (a) (fib-iter (+ a 1)) 3)) (a 1)) (begin (fib-iter (+ a 1)) 3)))
|
||||
|
||||
(display "\nex-4.9 - iteration-constructs\n")
|
||||
|
||||
|
|
Loading…
Reference in New Issue