1

私はこの運動をしています。

これが私の解決策です:

(defn infixcal [left op right & expr]
  (let [r (op left right)]
    (if (nil? expr)
      r
    (infixcal r expr))))

expression を渡すと、リストにまとめられて38 + 48 - 2 / 2いるため、 ArityExceptionが発生します。expr'(- 2 / 2)

問題は、それをいくつかの引数に分割し、関数 infixcal の次の呼び出しに渡す方法です。

4

1 に答える 1

1

関数を適用したいと思います:http://clojuredocs.org/clojure_core/clojure.core/apply

この関数は、最初の引数として別の関数fを取り、2番目の引数としてリストlを取ります。次に、関数fが引数のリストに適用されます(そして戻り値はapplyから返されます)。

于 2013-03-11T11:45:50.823 に答える