((lambda()))
的方案是否有简写例如,而不是
((lambda ()
(define x 1)
(display x)))
我希望能够做一些像
这样的事情(empty-lambda
(define x 1)
(display x))
答案 0 :(得分:10)
通常的习惯用语是
(let ()
(define x 1)
(display x))
你当然可以变成一个快速宏:
(define-syntax-rule (block E ...) (let () E ...))
答案 1 :(得分:3)
为什么不
(let
((x 1))
(display x))
答案 2 :(得分:3)
Racket提供block
表单,其工作方式如下:
#lang racket
(require racket/block)
(block
(define x 1)
(display x))
答案 3 :(得分:2)
(define-syntax empty-lambda
(syntax-rules ()
((empty-lambda body ...)
((lambda () body ...)))))