Clojure和Scala都有构成函数/方法(分别为comp
和.compose
)。 Scala有一个方法.andThen
,其工作原理与.compose
相同,只是它按照相反顺序嵌套函数应用程序。 Clojure中是否存在此函数的模拟?Clojure相当于Scala's,然后
我可以写很容易够我自己的例子是这样的: (defn and-then [& fns] (apply comp (reverse fns)))
,但它似乎很基本的,它必须已经存在,特别是用Clojure它在将线程宏表达式为自由点功能自然应用,例如以下两个表达式将在一元的情况下相当于:#(->> % a b c)
和(and-then a b c)
我同意'和然后'不是一个前缀语言的最佳名称,但我希望Clojure有一个更有意义的名称。线程宏在很多情况下都很棒,但有时候有一个函数(而不是宏)返回一个函数(而不是计算的值)是有益的。 – user12341234
确实。看起来很多项目只是用你所建议的定义来定义他们自己的'rcomp'。 –