[英]is there something in clojure like * or ** in python?
我有一個向量,想在Clojure中調用一個函數。 該函數接受許多參數,並且我有矢量。
例如:
(defn f [a b] (+ a b))
我有向量:
[1 2]
我可以使用apply:
(apply f [1 2])
但是我可以像在Python中那樣在Clojure中調用f
嗎?
(f *[1 2]) .
我的用例是我需要從地圖上dissoc
一些鍵。 我想打電話(dissoc amap *keys)
,但是不支持。
我可以用apply
(apply dissoc (cons amap keys))
但這不是那么方便。
在Clojure中執行此操作的最佳方法是什么?
其他人都注意到, apply
與Python的任意參數列表 完全等效。 在您的用例中,給定
(def a-map {1 2, 3 4, 5 6})
(def some-keys (range 5))
從a-map
dissoc
some-keys
(apply dissoc a-map some-keys)
; {5 6}
我原來的解決方案也有效
(reduce dissoc a-map some-keys)
; {5 6}
但這僅是因為dissoc
可以一次或一次全部接受其主要論點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.