【SICP练习】54 练习2.22
来源:互联网 发布:阿里云美国账号用途 编辑:程序博客网 时间:2024/05/16 15:09
练习2.22
题目中Louis的第一个程序将items中的元素一个一个的取出来然后平方然后”推“到answer中。而我们在上一题中则是迭代结构,是将元素平方后”推“到一个大盒子中,而大盒子里又有一个元素被平方然后被”推“到另一个稍微小点的大盒子中去。
而修改后的程序看似解决了问题,其实错得更加离谱了。比如用(list 1 2 3 4 5)作为items一开始传入,程序先将1取出来平方,然后推到最前面,但是其后呢?此时的answer是什么,只不过是一个nil而已。因此每隔一个元素中间就有一个nil。于是返回的结果会是如此的丑陋:( ( ( ( ( ) . 1 ) . 4 ) . 9 ) . 16 ) . 25)。如果你怀疑这个结果是不是真的是因为我刚才那样的解释,没关系,看下面的这个检验。
(cons (cons (cons (cons (cons ‘() 1 ) 4) 9 ) 16 ) 25 )
;Value: ( ( ( ( ( ) . 1 ) . 4 ) . 9 ) .16 ) . 25)
0 0
- 【SICP练习】54 练习2.22
- 【SICP练习】2 练习1.6
- 【SICP练习】3 练习1.7
- 【SICP练习】4 练习1.8
- 【SICP练习】5 练习1.9
- 【SICP练习】6 练习1.10
- 【SICP练习】7 练习1.11
- 【SICP练习】8 练习1.12
- 【SICP练习】9 练习1.15
- 【SICP练习】10 练习1.16
- 【SICP练习】11 练习1.17
- 【SICP练习】12 练习1.18
- 【SICP练习】13 练习1.19
- 【SICP练习】14 练习1.20
- 【SICP练习】15 练习1.21
- 【SICP练习】16 练习1.22
- 【SICP练习】17 练习1.23
- 【SICP练习】18 练习1.24
- 【SICP练习】51 练习2.19
- 【SICP练习】52 练习2.20
- 大小写转换
- 【SICP练习】53 练习2.21
- hdu(2181):哈密顿绕行世界问题,dfs遍历
- 【SICP练习】54 练习2.22
- 【SICP练习】55 练习2.23
- 【SICP练习】56 练习2.24-2.26
- 【SICP练习】57 练习2.27
- 公司级项目管理例会的汇报内容
- 【SICP练习】58 练习2.28
- 【SICP练习】59 练习2.29
- ReactOS SYSCALL_PROLOG/TRAP_EPILOG及相关代码注释 (2) --ZwContinue
- 【SICP练习】60 练习2.30