我理解 Clojure 中的 `-> 标题宏应用为给定参数提供的所有函数。但是,它似乎不适用于匿名函数。例如:
user> (-> 4 inc inc dec)
5
但是:
user> (-> 4 #(+ % 1) #(- % 1) #(+ % 1))
返回错误:
clojure.lang.Symbol cannot be cast to clojure.lang.IPersistentVector
[Thrown class java.lang.ClassCastException]
如果有人知道解决方法,那将会很有帮助。谢谢!
最佳答案
您可以在 Clojure 宏中使用匿名函数。您遇到了问题,因为您缺少一些括号。 :) 您的示例已在下面编辑。
(-> 4 (#(+ % 1)) (#(- % 1)) (#(+ % 1)))
关于lambda - 线程宏 -> 带有匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740265/