我有一个功能可以完成一些(可能很长)工作(defn workwork [x] ...)
,还有一些其他功能可以检查调用是否会提前成功(defn workwork-precondition-1 [x] ...)
。
每次workwork
调用(例如使用:pre
)时都应评估前置条件函数。前置条件函数也应该被收集(和:ed)在一个函数中,并直接提供给客户端代码(例如禁用按钮)。
在避免代码重复的同时,在 Clojure 中解决这个问题的惯用方法是什么?
特别是,有没有办法在不运行函数体的情况下评估函数的先决条件?