我正在尝试使用failjure/ok->>(https://github.com/adambard/failjure#ok--and-ok-)编写线程宏,线程中的最后一个函数需要一个条件来执行。代码如下所示:
(f/ok->> (function1 param)
(function2 param1 param 2)
...
({conditional function here}))
Run Code Online (Sandbox Code Playgroud)
如果条件未命中,线程宏返回倒数第二个函数调用的结果。我试图写一个cond是检查的必要条件,然后或者如果条件过去了,还是以前的功能而造成的返回的功能函数,但是线程宏似乎结果不传递给内部的功能cond,但只的cond本身。(不正确的)代码如下所示:
(f/ok->> (function1 param)
(function2 param1 param 2)
...
(cond (condition?)
(function_if_passes_condition)
#(%))
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种干净的方法可以正确地做到这一点。我想有可能编写一个具有这种功能的全新线程宏,但到目前为止我所有的尝试都没有奏效(我之前没有写过一个defmacro实现线程宏的程序,这非常困难)我是 clojure 的新手,有 3 个月的经验)。