【发布时间】:2017-06-27 21:32:35
【问题描述】:
好的,我是 scheme/racket/lisp 的新手。我正在练习创建自己的函数、语法和递归,所以我想创建自己的 foldl 和 foldr 函数,它们的功能与预定义版本完全相同。我不能这样做,因为我只是不明白这些功能是如何工作的。我在这里看到过类似的问题,但我仍然不明白。一些分解的例子会有所帮助!这是我的(不正确的)过程:
(foldl - 0 '(1 2 3 4)) 我做0 -(4-3-2-1) 并得到正确答案 2
(foldl - 0 '(4 3 2 1))0-(1-2-3-4) 得到 8 但应该是 -2。
(foldr - 0 '(1 2 3 4))0-(1-2-3-4) 又得到 8,但应该是 -2。
(foldr - 0 '(4 3 2 1)) 我做0-(4-3-2-1) 并得到正确答案 2。
我做错了什么?
【问题讨论】:
-
您可能会发现此页面上的讨论也很有用:stackoverflow.com/questions/39018163/…