【发布时间】:2021-09-05 11:36:07
【问题描述】:
假设我有一组不带参数的函数,例如
(defn f1 [] 1)
(defn f2 [] 2)
(defn f3 [] 3)
然后我列出这些函数:
(list f1 f2 f3)
但是我如何运行类似返回的函数
(first (list f1 f2 f3))?
在 Common Lisp 中,我可能会使用 funcall,因为 f1 没有参数。在 Clojure 我试过
(apply (first (list f1 f2 f3)) ()),即应用于空参数列表,
这行得通,我确实得到了1。
但是有没有更好的方法来做到这一点?即 Clojure 中是否有 funcall 等价物? (这甚至是正确的问题吗?)
【问题讨论】:
-
确实!谢谢!
标签: clojure