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

Change last element in list

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

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

如何更改最后一个元素 (3)?我想要这样的列表:

(+ (+ 1 2) 4)

我试过了

(list (butlast mylist) 4)

但它产生了这个:

((+ (+ 1 2)) 4)

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

您可以使用以下内容:

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