【发布时间】:2014-07-29 12:31:13
【问题描述】:
问题:
假设我想在运行时编写一组函数 f_1 ... f_n,例如:
(f_a (f_b (f_c) (f_d)) (f_e))
因此我需要每个函数的参数类型和返回值,以便知道我可以将哪些函数相互插入。
第一次尝试:注释每个函数
(defn foo [n f]
^{:params [Number clojure.lang.Fn]
:return String}
(do stuff with f and n, return a string))
由于显而易见的原因,我不喜欢这种方法,例如,如果我想使用 clojure.core 作为函数集,我将不得不注释每个函数,这不是很理想。
问题
您将如何尝试解决此问题?
core.typed 能帮我解决这个问题吗?
【问题讨论】:
标签: clojure function-composition