是否有计划的简写为((拉姆达()))简写为((拉姆达()))
例如,而不是
((lambda()
(define x 1)
(display x)))
我希望能够做到像
(empty-lambda
(define x 1)
(display x))
是否有计划的简写为((拉姆达()))简写为((拉姆达()))
例如,而不是
((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 ...))
(define-syntax empty-lambda
(syntax-rules()
((empty-lambda body ...)
((lambda() body ...)))))
是我意识到,但我想要内置的东西。虽然谢谢! – Cam
为什么不
(let
((x 1))
(display x))
球拍提供block
形式,它的工作原理是这样的:
#lang racket
(require racket/block)
(block
(define x 1)
(display x))
啊完美。谢谢! – Cam
我认为显而易见的答案是使用'begin',如:'(begin(define x 1)(display x))'原来是明显的错误,请参阅http://stackoverflow.com/questions/1683796 /如何可任意你重写 - 开始 - 在-方案/ 1683842#1683842。 –
对于let和define都是+1。美丽。 – djhaskin987