本文主要是介绍sicp 习题2.22,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Louis 的两种方法都不对,第一种方法list 的顺序反了,第二种方法最后构造出的是一个表头为空,后面是值的序对。 list 应该表头就是第一个元素。
正确的迭代方法:
(define (square-list items)(define (iter things answer)(if (null? things)(reverse answer) ; change 当最后迭代完以后 list为逆序, 调用reverse 将逆序改为正序即可(iter (cdr things) (cons (square (car things))answer))))(iter items '()))
这篇关于sicp 习题2.22的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!