是否可以在Clojure中将juxt
与Java对象的方法结合使用?
基本上我想要实现的是
((juxt .method1 .method2) myinstance)
.method1
和method2
是myinstance
的实例方法,它是某个Java类的实例。
感谢您的帮助!
答案 0 :(得分:5)
或者只是为此制作一个宏,这会将正常typeFrom :: Question -> *
typeFrom (Simple {a}{typeableDict4a}{showDict4a} message parser) = a
runQuestion :: (q :: Question) -> IO (typeFrom q)
行为与print
行为结合起来。像这样:
juxt
例如:
.method
扩展为以下内容:
user> (defmacro juxt+ [& fns]
(let [x (gensym)]
`(fn [~x] ~(mapv #(list % x) fns))))
#'user/juxt+
在repl中:
(juxt+ .getName (partial str "string val: ") .getAbsolutePath vector)
答案 1 :(得分:4)
尝试在匿名函数中封装方法调用:
((juxt #(.method1 %) #(.method2 %)) myinstance)