我有两个功能:
user=> (def tmp (classificator.db/get-questions classificator.db/db))
#'user/tmp
user=> (def result (map classificator.core/transform-data tmp))
#'user/result
我传递给第二个函数的第一个函数返回数据。
我想写一个没有tmp
变量的表达式:
user=> (-> (classificator.db/get-questions classificator.db/db) (map classificator.core/transform-data))
IllegalArgumentException Don't know how to create ISeq from: classificator.core$transform_data clojure.lang.RT.seqFrom (RT.java:542)
看起来我没有误认为->
宏用法。我该如何解决?
答案 0 :(得分:2)
线程优先宏->
将参数放在剩余表单的第一个位置,但是你希望它在最后。您可以改为使用最后一个宏->>
:
(->> (classificator.db/get-questions classificator.db/db)
(map classificator.core/transform-data))
或
(->> classificator.db/db
(classificator.db/get-questions)
(map classificator.core/transform-data)))