更具体地说,我感兴趣的是begin
的一个特定属性,其中将其主体中的定义添加到周围范围。例如。是否可以使用与开始表单相同的属性来定义宏?
(begin (define a 1)
(define b 2))
(+ a b) ; 3
这将是相当简单的定义一个新的宏my-begin
被翻译成标准begin
,但在我的具体使用情况下,我需要那些在开始被绑定的所有标识符的列表,这样我可以在别处引入/使用它们。
对于我想达到的目标更具体:我计算出如何构建PAR/AND
运算符,该运算符可以同时评估两个分支(或至少根据上下文给出印象)。分支可能包含阻塞操作。一旦两个分支都返回,PAR/AND
本身就会返回。任何定义在外部范围内都可用。例如:
(PAR/AND
(define a (do-something)) ; branch 1
(define b (do-something-else))) ; branch 2
(+ a b)
我不是很肯定又如何实现它(因为我有一些额外的东西操心),但使得a
和b
可用的par/and
范围之外是肯定的东西,需要发生在某个时刻。
听起来像一个XY问题。你究竟在努力完成什么? – Sylwester
你可能是对的。我为这个问题添加了更多的上下文。 – Sam