【发布时间】:2017-04-04 14:45:02
【问题描述】:
有没有办法在 elisp 中回推到列表?
我找到的最接近的东西是
(add-to-list 'myList myValue t) ;; t tells it to put to back of the list
然而,问题在于 add-to-list 会强制执行唯一性。另一种选择是(push 'myList myVal),但它只能推到列表的前面。我尝试使用(cons myList myVal),但 IIRC 返回的不是列表。
唯一有效的是
(setq myList (append myList (list myVal)))
但是这种语法很可怕,感觉就像做一些简单的事情需要做很多额外的工作。
有没有更快的方法来推到列表的后面。正如(add-to-list) 中所见,这显然是可能的,但有没有办法在不强制唯一性的情况下做到这一点?
换句话说,像 C++ 和 <List> 类这样的一个很好的旧推回函数
【问题讨论】:
-
作为后续问题,为什么 elisp 如此稀疏。我觉得它只是工作所需的最低限度。这背后有某种哲学吗?
-
它是一个 Lisp,例如一种可扩展的语言。如果有什么事情让你烦恼并改变行为,你总是可以编写一个宏。