((lambda())的简写

Cam*_*Cam 3 lambda scheme r6rs racket

是((lambda())方案的简写吗?

例如,而不是

((lambda ()
    (define x 1)
    (display x)))
Run Code Online (Sandbox Code Playgroud)

我希望能够做类似的事情

(empty-lambda
    (define x 1)
    (display x))
Run Code Online (Sandbox Code Playgroud)

Eli*_*lay 10

通常的习惯用语是

(let ()
  (define x 1)
  (display x))
Run Code Online (Sandbox Code Playgroud)

你当然可以变成一个快速的宏:

(define-syntax-rule (block E ...) (let () E ...))
Run Code Online (Sandbox Code Playgroud)

  • 我认为显而易见的答案是使用`begin`,如:`(begin(define x 1)(display x))`结果是明显的和错误的,请参阅http://stackoverflow.com/questions/1683796/如何可任意你重写 - 开始 - 在-方案/ 1683842#1683842. (2认同)