每个Racket的这个数字是多少?

时间:2016-08-18 11:53:32

标签: scheme racket

https://docs.racket-lang.org/reference/pairs.html#%28def._%28%28lib._racket%2Fprivate%2Fmap..rkt%29._for-each%29%29上的数字23是什么?

(for-each (lambda (arg)
              (printf "Got ~a\n" arg)
              23)
            '(1 2 3 4))

即使没有' 23'

,代码仍可正常运行

2 个答案:

答案 0 :(得分:1)

这是为了说明在示例代码上方的行上写的内容...将忽略过程的结果,在本例中为23。

由于它被忽略,你可以放置任何其他值,甚至不像你那样。

答案 1 :(得分:1)

for-eachmap的特殊版本,完全忽略每个应用程序的返回值,并且不会生成结果列表。如果提供的过程没有副作用,则整个表达式将变为死代码。

for是一种特殊形式,可让您使用不同的语法编写for-each。它的map等价物称为for/listfor#!racket无关,而for-each存在于所有Scheme语言和方言中。 for和作为宏的朋友确实拥有比过程版本更多的功能,比如有更多累加器和停止条件的可能性。