【发布时间】:2019-09-19 23:54:11
【问题描述】:
我想知道当使用set! 时,Racket 的评估顺序是如何确定的。更具体地说,
-
#%app是否总是从左到右评估其参数? - 如果不是,是否可以将不同参数的评估交织在一起?
以这个 sn-p 为例:
#lang racket
(define a 0)
(define (++a) (set! a (add1 a)) a)
(list (++a) (++a)) ; => ?
最后一个表达式的计算结果是否可以不同于'(1 2),例如'(1 1)、'(2 2) 或'(2 1)?
我在http://docs.racket-lang.org/reference 上找不到明确的答案。
【问题讨论】:
标签: racket evaluation