python中的LISP缺点
问题内容:
cons
在Python中是否有等效功能?(任何高于2.5的版本)
如果是这样,它是内置的吗?还是我需要easy_install
获取一个模块?
问题答案:
在Python中,使用基于数组的list
类比使用Lisp样式的链表更为典型。但是在它们之间进行转换并不难:
def cons(seq):
result = None
for item in reversed(seq):
result = (item, result)
return result
def iter_cons(seq):
while seq is not None:
car, cdr = seq
yield car
seq = cdr
>>> cons([1, 2, 3, 4, 5, 6])
(1, (2, (3, (4, (5, (6, None))))))
>>> iter_cons(_)
<generator object uncons at 0x00000000024D7090>
>>> list(_)
[1, 2, 3, 4, 5, 6]