2016-05-04 54 views
0

如何從另一個元素引用clojure貼圖中的元素?從同一張地圖內引用clojure地圖中的元素?

{:num (calculate-num-function) 
:sometext "Hello" 
:double-num (* 2 :num)} ;; Is something like this possible? 
+2

你想達到什麼目的?爲什麼不是這樣一個選項:'(let [num 1000] {:num num:sometext「hello」:double-num(* 2 num)})'? – leetwinski

+0

在這種情況下,您不能引用另一個值,因爲它尚未被讀取和評估。您必須先創建一個地圖,然後使用它的值。 – leetwinski

回答

1
(let [m {:num (calculate-num-function) :sometext "Hello"} 
     m2 (assoc m :double-num (* 2 (:num m)))}] ...) 

會做到這一點的方法之一。

另:

(let [num (calculate-num-function) 
     m {:num num :sometext "Hello" :double-num (* 2 num)}] ...) 

否則,不,你不能做你想做的,也沒有必要這麼做。

相關問題