同じ引数を要求し、同じブール型の値を返す 2 つの関数を次に示します。そのような:
(defn Foo1 [x] (< x 3))
(defn Foo2 [x] (> x -10))
しかし、以下の関数を定義すると混乱します。
(def Foo3 (or Foo1 Foo2))
仕組みを教えてください。どうもありがとうございました!
同じ引数を要求し、同じブール型の値を返す 2 つの関数を次に示します。そのような:
(defn Foo1 [x] (< x 3))
(defn Foo2 [x] (> x -10))
しかし、以下の関数を定義すると混乱します。
(def Foo3 (or Foo1 Foo2))
仕組みを教えてください。どうもありがとうございました!
(defn f [a] a)
の単なるショートカットです(def f (fn [a] a))
バインディングの 2 番目の引数def
が関数の場合、最初の引数も関数です。
条件を組み合わせようとしていると仮定すると、おそらく次のことが必要になります。
(defn foo3 [x] (or (foo1 x) (foo2 x)))
つまりfoo3
、結果が呼び出しの結果を論理和した結果でfoo1
ありfoo2
、同じパラメータを持つ新しい関数を定義していますx
。
PS Clojure では、小文字で関数に名前を付けるのが一般的です。