【发布时间】:2012-08-11 09:46:00
【问题描述】:
假设我有一个“类似函数”的记录,至少在它表示可以应用于某些参数的操作的意义上。
我可以通过实现clojure.lang.IFn 使其作为函数工作,例如:
(defrecord Func [f x]
clojure.lang.IFn
(invoke [this arg]
(f x arg))
(applyTo [this args]
(apply f x args)))
((->Func + 7) 1)
=> 8
(是的,我知道我刚刚重新实现了 partial.... 的低级版本。这只是一个示例 :-))
制作录音工具clojure.lang.IFn是不是一个好习惯?
这种方法有什么陷阱吗?
【问题讨论】:
标签: function clojure functional-programming record