Scheme 如何在andmap内的lambda函数中返回值
我正在学习Racket,我不知道如何在Scheme 如何在andmap内的lambda函数中返回值,scheme,lisp,racket,Scheme,Lisp,Racket,我正在学习Racket,我不知道如何在和map函数中返回值: (define iguales 0) (andmap (lambda (x y) (cond ((eq? (last x) (last y)) (set! iguales (add1 iguales))))) casos extension) 如果我在lambda(xy)函数的末尾添加iguales,我认为它将为每个x和y值返回一个值 将返回值放入l
和map
函数中返回值:
(define iguales 0)
(andmap
(lambda (x y)
(cond
((eq? (last x) (last y))
(set! iguales (add1 iguales)))))
casos extension)
如果我在lambda(xy)
函数的末尾添加iguales
,我认为它将为每个x
和y
值返回一个值
将返回值放入lambda函数的正确位置在哪里?主体返回最后一个表单的值 这: 返回
#f
或集合的结果代码>表单
在任何情况下,要从lambda返回iguales
:
(lambda (x y)
(cond ((eq? (last x) (last y))
(set! iguales (add1 iguales))))
iguales)
然后,和map
表单将返回#f
或casos
和扩展名
中较短者的长度(请参见原因)。主体返回最后一个表单的值
这:
返回#f
或集合的结果代码>表单
在任何情况下,要从lambda返回iguales
:
(lambda (x y)
(cond ((eq? (last x) (last y))
(set! iguales (add1 iguales))))
iguales)
然后,和map
表单将返回#f
或casos
和扩展名
中较短者的长度(请参见原因)。谢谢您的回答。我使用了和map
,但我可以使用ormap
。还有其他球拍的功能来做我所做的吗?再次感谢。那么,你想做什么呢?和map
以及ormap
做非常不同的事情!你不能互换使用它们,你想做什么?此外,您的代码是必需的,也许您需要为每个
使用一个。。。或者完全用函数的方式重写它,避免设置set
在(大多数)方案代码中似乎不合适。我想比较casos
和extension
列表中的所有元素,并计算其中哪些元素与最后一个元素相等casos
和extension
是列表列表。请查看fold()的文档,注意您可以提供多个列表。感谢您的回答。我使用了和map
,但我可以使用ormap
。还有其他球拍的功能来做我所做的吗?再次感谢。那么,你想做什么呢?和map
以及ormap
做非常不同的事情!你不能互换使用它们,你想做什么?此外,您的代码是必需的,也许您需要为每个
使用一个。。。或者完全用函数的方式重写它,避免设置set
在(大多数)方案代码中似乎不合适。我想比较casos
和extension
列表中的所有元素,并计算其中哪些元素与最后一个元素相等casos
和extension
是列表列表。请查看fold()的文档,注意您可以提供多个列表。