我有一个a
可能是也可能不是的价值nil
。
我有一堆函数(在我的控制范围之外),a
如果它不是,则应将其值作为第一个参数调用nil
。如果是nil
,则应在没有 的情况下调用该函数a
。
代替:
(defn my-fn [x]
(if a
(beyond-my-control-fn a x)
(beyond-my-control-fn x)))
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情:
(defn my-fn [x]
(add-argument-if-not-nil-> a (beyond-my-control-fn x)))
Run Code Online (Sandbox Code Playgroud)
是否有一个宏可以让我这样做,还是我应该自己做?
你可以用另一个函数包装那些超出你控制的函数的调用
(defn call-with-a-if-not-nil
[f a & args]
(if (nil? a)
(apply f args)
(apply f a args)))
Run Code Online (Sandbox Code Playgroud)
样品:
(call-with-a-if-not-nil beyond-my-control-fn a x)
(call-with-a-if-not-nil beyond-my-control-fn-1 a v w)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1076 次 |
最近记录: |