如何识别thread-last的变量?

How to identify the variable of thread-last?

考虑以下代码:

(defn delete-last-line [list]
  (take (- (count list) 1) list)
  )

(->>
(create-list)
(delete-last-line))

现在我想用thread-last 中的匿名函数替换delete-last-line。像下面这样的东西,但这不起作用。问题是我需要以某种方式拥有变量的标识符。

 (take (- (count %) 1))

在你的匿名函数周围多加一对括号,这样你就可以调用它;这样 ->> 线程进入函数的 调用 ,而不是它的 定义

(->>
  (create-list)
  (#(take (- (count %) 1) %)))

我不知道你所说的“以某种方式拥有变量的标识符”是什么意思,但是如果你想给它起一个名字而不是使用 %,你总是可以这样做:

(println
  (->>
    (create-list)
    ((fn [lst] (take (- (count lst) 1) lst)))))