这是两个函数,它们请求相同的参数并返回相同的布尔类型值。 如:
(defn Foo1 [x] (< x 3))
(defn Foo2 [x] (> x -10))
但是当我定义下面的函数时我很困惑:
(def Foo3 (or Foo1 Foo2))
你们能告诉我它是如何运作的吗?非常感谢你!
答案 0 :(得分:1)
(defn f [a] a)
只是(def f (fn [a] a))
如果def
绑定的第二个参数是一个函数,那么第一个参数也是函数。
答案 1 :(得分:1)
假设您正在尝试组合条件,您可能需要:
(defn foo3 [x] (or (foo1 x) (foo2 x)))
也就是说,您正在定义一个新函数foo3
,其结果是使用相同参数foo1
调用foo2
和x
的结果或结果
P.S。在Clojure中以小写命名函数是常规的。