((lambda())的缩写)

((lambda())的缩写),lambda,scheme,racket,r6rs,Lambda,Scheme,Racket,R6rs,((lambda())的scheme中有速记吗 例如,代替 ((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 ...

((lambda())的scheme中有速记吗

例如,代替

((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))
Racket提供的表单如下所示:

#lang racket
(require racket/block)
(block
 (define x 1)
 (display x))

是的,我知道,但我想要一些内置的东西。谢谢你!我认为最明显的答案应该是使用
begin
,比如:
(begin(define x 1)(display x))
显然是错误的,请参阅。
#lang racket
(require racket/block)
(block
 (define x 1)
 (display x))