我必须用计划来写计划。安静有趣,但情况就是这样。无论如何,这里有一个用我可能使用的语言编写"lambda“表达式的例子,我在编写"Let”表达式时也需要帮助。如何用类似的方式将“让”表达式翻译成lambda?谢谢。
(define (lambda? exp) (tag-check exp 'lambda))
(define (eval exp env)
(cond ((number? exp) exp)
((symbol? exp) (lookup exp env))
((define? exp) (eval-define exp env))
((if? exp) (eval-if exp env))
((lambda? exp) (eval-lambda exp env))
((application? exp) (apply (eval (car exp) env)
(map (lambda (e) (eval e env))
(cdr exp))))
(else (error "unknown expression " exp))))
(define (eval-lambda exp env)
(make-procedure (lambda-parameters exp)
(lambda-body exp)
env))
(define (lambda-parameters exp) (cadr exp))
(define (lambda-body exp) (cddr exp))
(define (make-procedure parameters body env)
(list 'procedure parameters body env))发布于 2011-05-15 14:43:22
你只需要编写一个程序就可以转换。
(E1 v1) (e2 v2) .)( => (lambda (e1 e2 .)身体.)( v1 v2 .)
看看SICP第四章。
https://stackoverflow.com/questions/5014701
复制相似问题