【发布时间】:2019-09-02 07:03:54
【问题描述】:
我只是想知道选择其中一个是否有任何优点/缺点,或者它是否纯粹是项目范围/工作流程的设计选择?
场景 1:使用 var 和 eval
(defn fun1 [x] (prn (* x x)))
(defn fun2 [y] (#'fun1 y))
(eval (fun2 2))
4
nil
场景 2:创建函数调用的顺序链
(defn fun1 [x] (prn (* x x)))
(defn fun3 [y] (fun1 y))
(fun3 2)
4
nil
非常感谢您的回复,提前致谢!
【问题讨论】:
-
注意
eval是一个函数,所以(eval (fun2 2))调用(fun2 2)然后eval结果即(eval 4)所以没有理由更喜欢这种方法。直接通过 var 调用函数也是不必要的,因为符号被评估为相应 var 的值。 -
@Lee 明白了。谢谢!
标签: clojure functional-programming