在方案中消除lambda?
我需要在我的学校作业中取消这个方案 有没有办法做到这一点在方案中消除lambda?,lambda,functional-programming,scheme,lambda-calculus,Lambda,Functional Programming,Scheme,Lambda Calculus,我需要在我的学校作业中取消这个方案 有没有办法做到这一点 (define (foo x) (letrec ((h (lambda (y z) (cond ((null? y) 'undefined) ((null? (cdr y)) (car z)) (else (h (cddr y) (cdr z))) )))) (h x x)) ) 那么,您可以用内部定义替换letrec中的lambda表达式:
(define (foo x)
(letrec
((h
(lambda (y z)
(cond
((null? y) 'undefined)
((null? (cdr y)) (car z))
(else (h (cddr y) (cdr z)))
))))
(h x x))
)
那么,您可以用内部定义替换
letrec
中的lambda
表达式:
(define (foo x)
(define (h y z)
(cond
((null? y) 'undefined)
((null? (cdr y)) (car z))
(else (h (cddr y) (cdr z)))))
(h x x))
。。。或者您可以在
foo
之外提取h
过程作为辅助过程。无论哪种方式,结果都是一样的。我真的不明白为什么他们会在作业中要求他们这样做。另一种方式(看到内部定义是letrec
)似乎更有指导意义