Functional programming 方案迭代是如何工作的?
从4.2.4迭代下开始Functional programming 方案迭代是如何工作的?,functional-programming,scheme,Functional Programming,Scheme,从4.2.4迭代下开始 (let ((x '(1 3 5 7 9))) (do ((x x (cdr x)) (sum 0 (+ sum (car x)))) ((null? x) sum))) -cdr和car的用法是什么 这条x行中会发生什么 (do ((x x (cdr x)) (sum 0 (+ sum (car x)))) ((null? x) sum)) car=第一个(如列表中的第一个元素) cdr=r
(let ((x '(1 3 5 7 9)))
(do ((x x (cdr x))
(sum 0 (+ sum (car x))))
((null? x) sum)))
-cdr
和car
的用法是什么
这条x
行中会发生什么
(do ((x x (cdr x))
(sum 0 (+ sum (car x))))
((null? x) sum))
- car=第一个(如列表中的第一个元素)
- cdr=rest(与列表中除第一个元素以外的所有元素一样)
循环将列表中的项目添加。
虽然从规范中学习方案可能起作用,但我恳求您考虑阅读一本书。有很多免费的,例如著名的计算机程序结构和解释。根据迭代语法,你能解释一下这里的
和
是什么吗?do中的第一个子句声明局部变量x(初始化为周围的x,每次迭代都用(cdr x)替换)和sum(初始化为0,并在每次迭代中用sum plus(car x)替换)。一旦第二个子句中的第一个子句为true(x为空),则返回sum的值。