最后学习一个Lisp方言(Scheme),我遇到了两个列表定义 -
“空列表或其cdr为列表的对”。
“用括号括起来的S-Expressions集合”。
这些定义是否相同?
答案 0 :(得分:4)
它们与{'a','b','c'}
和"abc"
前者是机器列表的逻辑表示,后者是您在代码中表示它的方式。
在计划中,你几乎可以将所有内容视为一个列表:)(有人会为此向我投票,但我发现在尝试计划式时它是真的。)
答案 1 :(得分:4)
我要带出我最喜欢的狗狗小马秀!
Tree of cons cells http://cloud9.hedgee.com/priv/expr1.png
这对应于以下内容:
(let ((s5 (sqrt 5)))
(/ (- (expt (/ (1+ s5) 2) n)
(expt (/ (- 1 s5) 2) n)) s5))
该图说明了您的第一个语句(空列表对象表示为黑盒子)。代码片段说明了您的第二个。 : - )