(for-each (lambda (arg)
(printf "Got ~a\n" arg)
23)
'(1 2 3 4))
即使没有' 23'
,代码仍可正常运行答案 0 :(得分:1)
这是为了说明在示例代码上方的行上写的内容...将忽略过程的结果,在本例中为23。
由于它被忽略,你可以放置任何其他值,甚至不像你那样。
答案 1 :(得分:1)
for-each
是map
的特殊版本,完全忽略每个应用程序的返回值,并且不会生成结果列表。如果提供的过程没有副作用,则整个表达式将变为死代码。
for
是一种特殊形式,可让您使用不同的语法编写for-each
。它的map
等价物称为for/list
。 for
与#!racket
无关,而for-each
存在于所有Scheme语言和方言中。 for
和作为宏的朋友确实拥有比过程版本更多的功能,比如有更多累加器和停止条件的可能性。