Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Clojure中,能否将项目添加到倒数第二个列表中?_Clojure - Fatal编程技术网

在Clojure中,能否将项目添加到倒数第二个列表中?

在Clojure中,能否将项目添加到倒数第二个列表中?,clojure,Clojure,是否有办法将所有元素中的最后一个元素(即您的元素)存储到倒数第二个集合中,以便: (defn my-function [all] ; Assume all = '((I am) (A Fan) (Of) Yours) ) 我不确定是否有任何特定的内置功能。以下是我所想的一些伪代码: user-> (my-function '((I am) (A Fan) (of) Yours) ) Output ->

是否有办法将所有元素中的最后一个元素(即您的元素)存储到倒数第二个集合中,以便:

 (defn my-function
   [all]                   ; Assume all = '((I am) (A Fan) (Of) Yours)
 )
我不确定是否有任何特定的内置功能。以下是我所想的一些伪代码:

 user->          (my-function '((I am) (A Fan) (of) Yours)  )
 Output ->       ((I am) (A Fan) (Of Yours)

假设所有输入都可以是任何长度和任何变量。

使用
最后一次下降
最后一次下降
concat
的组合,您可以实现我的功能,如下所示:

 (defn my-function
   [all]                   

  (cons (last input) (second to last input)

 )

您正在发布许多关于堆栈溢出的相关问题,这些问题在交互式上下文中可能更容易讨论和回答。你可以加入Clojurians Slack,在#初学者频道询问,那里的人们会很乐意帮助你。在注册-#初学者频道的人们都非常友好!我赞同肖恩·科菲尔德的话。许多快乐善良的人愿意帮助克洛尤里亚人。为什么的改变了现状?我猜这是打字错误?那么您想删除最后一个元素并将其附加到(新的)最后一个元素上(如paredit中的slurp)?这是昵称为noobprogrammer的同一个人吗?从注释样式和变量命名约定来看,它看起来是这样的
(defn my-function [all]
  (let [start (drop-last 2 all)      ; start=(I am) (A Fan)
        [a b] (take-last 2 all)      ; a=(of) b=Yours
        new-end (concat a (list b))] ; new-end=(of Yours)
    (concat start (list new-end))))