在Scheme中,是否有一个缩写可以代替((lambda () ))?
例如,可以这样写:
((lambda ()
(define x 1)
(display x)))
我希望您能像这样做一些事情。
(empty-lambda
(define x 1)
(display x))
通常的说法是
(let ()
(define x 1)
(display x))
你当然可以将其转换为快速宏:
(define-syntax-rule (block E ...) (let () E ...))
(let
((x 1))
(display x))
(define-syntax empty-lambda
(syntax-rules ()
((empty-lambda body ...)
((lambda () body ...)))))
begin
,例如:(begin (define x 1) (display x))
。结果证明这个想法虽然显而易见,但是是错误的,请参考 https://dev59.com/K3I-5IYBdhLWcg3wxbjv#1683842。 - Shannon Severance