Tagged as challenge
Written on 2018-01-30
Write with-definitions
, a version of letrec
which allows one to use define
-like syntax in Scheme. For instance, I should be able to do:
(define (example x)
(with-definitions
((define (is-even? x) (zero? (remainder x 2)))
(define rofl "rolling on the floor laughing"))
(if (is-even? x)
(display rofl)
(display ":("))))
It's a little baroque and definitely not "minimal", but neither is being able to do
(define (f x) ...)
when you could also do
(define f (lambda (x) ...))