我正在尝试使用类似于Python的东西,func(*lst)但使用Clojure,而不使用该apply函数.我公认的愚蠢用例是:
{:k1 v1 (cond exp '(:k2 v2) :else '(:k3 v3))}
Run Code Online (Sandbox Code Playgroud)
因此,如果exp为真,则dict将包含{:k1 v1 :k2 v2},否则{:k1 v1 :k3 v3}.我基本上想要一个Python-esque *应用于返回值cond.我尝试用',`和〜来玩数据/代码模式,但没有找到解决方案.我可以重复cond针对底层的个别参数,hash-map但这种情况会失败.
为什么?我认为如果Clojure可以轻松实现它会很酷.:)
clojure ×1