lin*_*ndy 1 lisp
我想编写一个反转列表元素的函数,但它应该就位(也就是说,不要创建一个新的反转列表).
就像是:
>> (setq l ' (a b c d)) ((a b c d) >> (rev l) (d c b a) >> l (d c b a)
我应该遵循什么标志才能实现这一目标?
Jef*_*ter 8
看看nreverse哪个会修改列表(参见HyperSpec).
nreverse
根据评论,请注意@Barmar所做的评论以及规范中的这一点:
对于nreverse,序列可能会被破坏并重新用于生成结果.结果可能与序列相同,也可能不同.具体来说,当sequence是一个列表时,nreverse允许设置任何属于序列列表结构的cons的任何部分,car或cdr.
归档时间:
12 年,6 月 前
查看次数:
576 次
最近记录: