comp的实现

时间:2014-12-01 18:00:47

标签: clojure

我试图理解这个函数是如何工作的,这是comp的一个实现(来自章节&#34;功能编程&#34;在书Clojure for the Brave and True中):< / p>

(defn two-comp
  [f g]
  (fn [& args]
    (f (apply g args))))

这个想法是它需要两个函数并将它们应用于args。我不明白的是args如何到达匿名函数,因为它们不作为two-comp的参数输入? two-comp如何以这种方式使用?

1 个答案:

答案 0 :(得分:4)

two-comp返回一个匿名函数,该函数依次为args。查看two-comp的正文:

(fn [& args]
  (f (apply g args)))

fn创建一个函数,该函数定义如下。 fn的返回值是从two-comp返回的值。