1
Chapter 5, Exercise 3勇敢和真實需要:的Clojure:Clojure中實施assoc命令,在功能
落實assoc命令的函數。提示:使用
assoc
函數並將其參數定義爲[m [k & ks] v]
。
雖然我找到了這個solution(見39-54行),我想知道是否有不同的方式來做到這一點。在練習上一個練習時,我發現jbm在implementing the comp function上的這個非常明確的答案非常有幫助。
我一直在試圖減少過度鍵的連體清單的部分assoc命令和應用功能返回到最終值:
(defn my-part-assoc [m k]
(partial assoc m k))
((reduce my-part-assoc {} [:one :two :three]) "val")
不用說,這是行不通的。我對Clojure和函數式編程不熟悉,擔心我對reduce的非常基本的理解導致我走錯了路。請有人提供一個更簡潔的答案?
我不知道這是否構成一個副本。雖然我在堆棧溢出中找到了我的答案,但我已將問題保留爲活動狀態,因爲它非常具體,可能會幫助處於相同位置的其他人。 – Ooberdan
注意到,與核心版本不同,你的失敗是這樣的:'(assoc-in {} [:a:b:c] 1)'... – leetwinski
不,@leetwinski,工作正常。 – amalloy