【发布时间】:2015-04-27 13:25:20
【问题描述】:
如何在一行中编写以下代码:
(-> 10 pow9)
pow9 在哪里:
(def pow9 (partial #(Math/pow % 9)))
如果我写(-> 10 (partial #(Math/pow % 9))),我会回复#<core$partial$fn__4228 clojure.core$partial$fn__4228@62330c23>,
写入(-> 10 #(Math/pow % 9)) 失败并显示CompilerException java.lang.ClassCastException: java.lang.Long cannot be cast to clojure.lang.ISeq, compiling:(NO_SOURCE_PATH:1:1),
虽然(-> 10 pow9) 工作正常。
更普遍的问题是如何使用 -> with 接受多个参数的函数,即如何使这项工作(-> 10 #(+ % 10))?
【问题讨论】: