【发布时间】:2011-04-12 09:55:31
【问题描述】:
以下过程在方案 r6rs 和 Racket 中都有效:
;; create a list of all the numbers from 1 to n
(define (make-nums n)
(do [(x n (- x 1)) (lst (list) (cons x lst))]
((= x 0)
lst)))
我已经对 r6rs 和 Racket 进行了测试,它确实可以正常工作,但我只知道 DrRacket 是肯定的。
我的问题是是否保证步骤表达式(在这种情况下为(- x 1) 和(cons x lst))将按顺序进行评估。如果不能保证,那么我的程序就不是很稳定。
我在这两种语言的标准中都没有看到任何规定,但我在这里问是因为当我测试时,它是按顺序评估的。
【问题讨论】:
标签: racket operator-precedence do-loops