2

同じ引数を要求し、同じブール型の値を返す 2 つの関数を次に示します。そのような:

 (defn Foo1 [x] (< x 3))
 (defn Foo2 [x] (> x -10))

しかし、以下の関数を定義すると混乱します。

 (def Foo3 (or Foo1 Foo2))

仕組みを教えてください。どうもありがとうございました!

4

2 に答える 2

1

(defn f [a] a)の単なるショートカットです(def f (fn [a] a))

バインディングの 2 番目の引数defが関数の場合、最初の引数も関数です。

于 2013-03-29T12:32:15.637 に答える
1

条件を組み合わせようとしていると仮定すると、おそらく次のことが必要になります。

(defn foo3 [x] (or (foo1 x) (foo2 x)))

つまりfoo3、結果が呼び出しの結果を論理和した結果でfoo1ありfoo2、同じパラメータを持つ新しい関数を定義していますx

PS Clojure では、小文字で関数に名前を付けるのが一般的です。

于 2013-03-29T12:40:35.707 に答える