ニューラルネットを実装しようとしていますが、各ニューロンには他のニューロンへの参照が必要です。私はこのリファレンスをアトムを介して実装しようとしています。
コードを検討してください
(def neuron1 {:connections [(atom 0)])
(def neuron2 {:connections [(atom neuron1)]})
(update-in neuron1 [:connections 0] #(reset! % neuron2))
その最後はスタックを爆破します。
そのため、アトムは単にそれらを参照するのではなく、その内容を含んでいるように見えます。
ポインタに相当するものを渡したい場合はどうすればよいですか?次のような関数を使用する必要がありますか?
(def neuron1 {:connections [(fn [] neuron2)]})
アトムを使用して逆参照するのではなく、それを呼び出しますか?