Scheme 每个球拍的这个数字是多少
23号是干什么用的Scheme 每个球拍的这个数字是多少,scheme,racket,Scheme,Racket,23号是干什么用的 (for-each (lambda (arg) (printf "Got ~a\n" arg) 23) '(1 2 3 4)) 即使没有“23”,代码也可以运行。这是为了说明示例代码上方的行中所写的内容。。。程序结果(在本例中为23)将被忽略 由于它被忽略,您可以输入任何其他值,甚至可以不输入任何值。for each是map的一个特殊版本,它完全忽略每个应用程序的返回值,并且不生成结果列表。如果
(for-each (lambda (arg)
(printf "Got ~a\n" arg)
23)
'(1 2 3 4))
即使没有“23”,代码也可以运行。这是为了说明示例代码上方的行中所写的内容。。。程序结果(在本例中为23)将被忽略
由于它被忽略,您可以输入任何其他值,甚至可以不输入任何值。
for each
是map
的一个特殊版本,它完全忽略每个应用程序的返回值,并且不生成结果列表。如果提供的过程没有副作用,则整个表达式将成为死代码
for
是一种特殊形式,允许您使用不同语法为每个编写。它的map
等价物被称为for/list
<用于
的代码>不适用于#!球拍,而每个的存在于所有方案语言和方言中<对于和friends,作为一个宏,代码>确实比程序版本具有更多的功能,例如可能有更多的累加器和停止条件 这是为了说明在示例代码上面的一行写了什么。。。该过程的结果(在本例中为23)被忽略。我认为您应该将此作为一个答案,因为这在该页上不清楚。它与简单的“for”有什么区别:(for((item)(1 2 3 4))(printf“get~a\n”item))?每种球拍都有什么特别之处,使其区别于简单的“for”循环?每种
都是标准方案,而for
程序都是特定于球拍的。在这种情况下,它们相当于同一件事。文档将每个的与地图
进行比较;它们是相似的,但是map
使用了过程的结果,而for each
没有。for each
的可以映射到for
,而map
可以映射到for/list
@msofor
循环在Scheme中并不存在。它们只是递归过程的糖。