相当于Scala的Clojure而且

时间:2017-05-24 18:50:36

标签: clojure

Clojure和Scala都有编写函数/方法(分别为comp.compose)。 Scala有一个方法.andThen,其工作方式与.compose相同,只不过它以相反的顺序嵌套函数应用程序。 Clojure中是否存在此函数的类比?

我可以自己轻松地编写它,例如: (defn and-then [& fns] (apply comp (reverse fns))),但它似乎已经足够基本,它必须已经存在,特别是因为在Clojure中它自然地应用于将线程宏表达式转换为无点函数,例如以下两个表达式在一元情况下是等效的:#(->> % a b c)(and-then a b c)

2 个答案:

答案 0 :(得分:3)

我不认为内置任何内容,可能是因为clojure没有中缀语法(即(and-then f g)不像f andThen g那样清晰。正如您已经认识到的那样->->>是其中常用的内容。

答案 1 :(得分:0)

不,Clojure中没有这样的内置功能。你提供的代码示例我相信已经足够了。