如何链接多个功能?

yeg*_*256 5 clojure

我正在尝试在Clojure中链接一些函数:

(f4 (f3 (f2 (f1 foo))))
Run Code Online (Sandbox Code Playgroud)

这有什么方便的语法糖吗?就像是:

(with-all-of-them foo f1 f2 f3 f4)
Run Code Online (Sandbox Code Playgroud)

Ank*_*kur 9

使用->宏.

(-> foo f1 f2 f3 f4)
Run Code Online (Sandbox Code Playgroud)

或者reduce:

(reduce #(%2 %1) foo [f1 f2 f3 f4])
Run Code Online (Sandbox Code Playgroud)

  • @vemv我觉得` - >`很可爱.`reduce`选项清楚地显示了操作模式,并且与线程宏不同,很高兴在编译时采用未知的序列. (3认同)