((lambda () )) 的简写

发布于 2024-12-10 04:40:41 字数 214 浏览 0 评论 0原文

方案中有 ((lambda () )) 的简写吗

例如,

((lambda ()
    (define x 1)
    (display x)))

,而不是我希望能够做类似的事情

(empty-lambda
    (define x 1)
    (display x))

Is there a shorthand in scheme for ((lambda () ))

For example, instead of

((lambda ()
    (define x 1)
    (display x)))

I would love to be able to do something like

(empty-lambda
    (define x 1)
    (display x))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

以歌曲疗慰 2024-12-17 04:40:41

通常的习惯用法是,

(let ()
  (define x 1)
  (display x))

您当然可以将其变成一个快速宏:

(define-syntax-rule (block E ...) (let () E ...))

The usual idiom for that is

(let ()
  (define x 1)
  (display x))

which you can of course turn into a quick macro:

(define-syntax-rule (block E ...) (let () E ...))
若能看破又如何 2024-12-17 04:40:41

为什么不只是

(let
    ((x 1))
    (display x))

Why not just

(let
    ((x 1))
    (display x))
那些过往 2024-12-17 04:40:41

Racket 提供了 block 形式,其工作原理如下:

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

Racket provides the block form, which works like this:

#lang racket
(require racket/block)
(block
 (define x 1)
 (display x))
蓝礼 2024-12-17 04:40:41
(define-syntax empty-lambda
  (syntax-rules ()
    ((empty-lambda body ...)
      ((lambda () body ...)))))
(define-syntax empty-lambda
  (syntax-rules ()
    ((empty-lambda body ...)
      ((lambda () body ...)))))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文