defn

    19熱度

    1回答

    我意識到宏觀俱樂部的第一條規則是不使用宏,所以下面的問題是在學習Clojure的比什麼都更打算作爲一個練習(我意識到這不一定是最好的宏使用)。 我想編寫一個簡單的宏,它作爲一個常規的宏包裝器,並添加一些元數據到定義的函數。所以,我想有這樣的事情: (defn-plus f [x] (inc x)) ...拓展出這樣的事: (defn #^{:special-metadata :fixed-va

    4熱度

    4回答

    如何修改clojure fn或宏的arglist屬性? (defn tripler ^{:arglists ([b])} [a] (* 3 a)) (defn ^{:arglists ([b])} quadrupler [a] (* 4 a)) % (meta #'tripler) => {:arglists ([a]), :ns #<Namespace silly.testin

    1熱度

    3回答

    我是新來的Clojure,我試圖瞭解儘可能多的,但本細則是如此模糊 ,當你有一個函數 (fn [_ {:keys [kind]}] kind) 我的理解是,函數需要一個矢量地圖,但只想訪問第二個參數{:keys.....指定的密鑰是否正確? 那麼我有多少個參數傳遞給這個函數? 1或2? 它是一個向量? {:kind 1:dog 2}或向量鍵值(:kind {....})?

    1熱度

    2回答

    根據規範,def應該在當前ns中實現var(即* ns *)。但是,下面的代碼看起來不像這樣: (ns namespace-b) (defn def_something [] (ns namespace-a) (println *ns*) ;prints namespace-a as it should (def something 1) ) (def_so