基本上,我需要做类似的事情map
,但我不需要将函数应用于集合中的所有元素,而是需要将相同(一组)值应用于函数集合(此操作有名称吗?)。这可能看起来是一个简单的问题,但我还没有找到在 Clojure 中执行此操作的惯用方法。对于我需要仅对每个函数应用一个值的特殊情况,例如,我使用了
(for [f funs] (f value))
where value
当然,是我需要每个函数作为参数的值,并且funs
是需要调用的函数的集合value
作为论点。
那么我的问题是,Clojure 中是否有一个函数可以执行此操作,但也可以泛化为任意数量的参数?或者上面的内容确实是 Clojure 惯用的吗?
您正在寻找juxt http://clojuredocs.org/clojure_core/clojure.core/juxt
juxt
接受一组函数并返回一个并置的 fn
那些 fns 的。返回的 fn 采用可变数量的参数,并且
返回一个向量,其中包含将每个 fn 应用于
args(从左到右)。
((juxt a b c) x) => [(a x) (b x) (c x)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)