Eliminate lambda in Scheme?
-
11-06-2021 - |
Question
I need to eliminate this Scheme lambda construction for my school assignment.
Any ideas how to accomplish this?
(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))
)
La solution
Well, you could replace the lambda
expression in the letrec
with an internal definition:
(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))
... Or you could extract the h
procedure outside of foo
, as a helper procedure. Either way the result would be the same.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow