我試圖實現一個神經網絡,並且每個神經元需要對其他神經元的引用。我一直試圖通過原子實現這個參考。Clojure有變量引用嗎?
考慮代碼
(def neuron1 {:connections [(atom 0)])
(def neuron2 {:connections [(atom neuron1)]})
(update-in neuron1 [:connections 0] #(reset! % neuron2))
這最後會吹堆棧。
因此,它似乎是一個原子包含它的內容,而不是僅僅引用他們。
如果我想傳遞相當於指針的指令,該怎麼辦?我必須在
(def neuron1 {:connections [(fn [] neuron2)]})
使用功能,因爲並調用它,而不是使用原子和非關聯呢?