【问题标题】:How to identify the variable of thread-last?如何识别thread-last的变量?
【发布时间】:2022-01-08 21:28:55
【问题描述】:

考虑以下代码:

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

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

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

 (take (- (count %) 1))

【问题讨论】:

标签: clojure


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2019-04-24
    • 2018-04-16
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多