3

関数の合成を作成できる関数を記述します。パラメータリストは可変数の関数を取り、関数を作成してそれらを右から左に適用する必要があります。

(fn [& fs]
  (fn [& args]
    (->> (reverse fs)
         (reduce #(apply %2 %1) args))))

http://www.4clojure.com/problem/58

=> (= [3 2 1] ((_ rest reverse) [1 2 3 4]))

clojure.lang.ArityException: Wrong number of args (4) passed to: core$rest

このエラーの原因は何ですか?見えません。

4

1 に答える 1

2

これapplyは、最後のパラメーターをパラメーターのフラット化されたリストに変換し、次のような呼び出しを作成するために使用されます。

(rest 1 2 3 4)

これはおそらくあなたが意図したものではありません.....そしてあなたが得ているエラーを説明します。

于 2013-03-20T23:34:21.067 に答える