2
我對clojure比較陌生,我不知道什麼是解決以下問題的好方法。使用clojure關鍵字來處理符號
我有兩套符號,說:
V1:
q w e r
V2:
a s d f
,他們用來興建第三組
答:
qa qs qd qf
wa ws wd wf
ea es ed ef
ra rs rd rf
與A的所有元素都是新的符號,但我必須能夠檢索單個符號符號。我想對A進行各種操作,例如,構建A的所有元素組合的另一組合或測試是否相等。
我想出了這兩種解決方案:
解決方案1:
(def A {:qa [:q :a] :qs [:q :s] :qd [:q :d] :qf [:q :f]
:wa [:w :a] :ws [:w :s] :wd [:w :d] :wf [:w :f]
:ea [:e :a] :es [:e :s] :ed [:e :d] :ef [:e :f]
:ra [:r :a] :rs [:r :s] :rd [:r :d] :rf [:r :f]})
(defn get-v1 [key] (first (key A)))
(defn get-v2 [key] (last (key A)))
=>(get-v1 :qa)
:q
溶液2:
(def A [:qa :qs :qd :qf
:wa :ws :wd :wf
:ea :es :ed :ef
:ra :rs :rd :rf])
(defn get-v1 [key] (keyword (str (first (name key)))))
(defn get-v2 [key] (keyword (str (last (name key)))))
=>(get-v2 :ws)
:s
其實解決方案1是不完整的,因爲訂單A的要素也很重要。因此需要解決方案2中的A的定義。但我還沒有想出一個聰明的方式排序,圖式解決方案來創建一個1
問題:
是關鍵字,以正確的方式去?
2. 如果是這樣,是我的解決方案是一個很好的方法來做到這一點或有一個更方便的方法嗎?我傾向於解決方案2.