更改列表中的最后一个元素

时间:2015-05-14 12:49:06

标签: clojure

我有一个嵌套列表:( def mylist'(+'(+ 1 2)3))

当我评估它时,我按预期得到6 :( eval mylist)

如何更改最后一个元素(3)?我想得到一个这样的清单:

(+ (+ 1 2) 4)

我试过

(list (butlast mylist) 4)

但它产生了这个:

((+ (+ 1 2)) 4)

即。第一部分嵌套在列表本身中。我该如何解决?我正在递归地建立列表数据结构,稍后我将通过eval函数对其进行评估。

1 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

(concat (drop-last mylist) '(4))