gpt4 book ai didi

pointers - Clojure 有变量引用吗?

转载 作者:行者123 更新时间:2023-12-01 08:09:34 25 4
gpt4 key购买 nike

我正在尝试实现一个神经网络,每个神经元都需要对其他神经元的引用。我一直在尝试通过原子来实现这个引用。

考虑代码

(def neuron1 {:connections [(atom 0)])
(def neuron2 {:connections [(atom neuron1)]})

(update-in neuron1 [:connections 0] #(reset! % neuron2))

最后一个会炸毁堆栈。

因此,原子似乎包含其内容,而不仅仅是引用它们。

如果我想传递指针的等价物,我该怎么办?我是否必须使用一个函数,如
(def neuron1 {:connections [(fn [] neuron2)]})

并调用它,而不是使用原子并取消引用它?

最佳答案

你的代码没问题。您炸毁堆栈的原因是您在 REPL 上运行 update-in 命令,这会导致它打印结果。由于每个神经元都嵌套在另一个神经元中,因此打印语句会遇到堆栈溢出。尝试将 update-in 命令包含在另一个语句中,例如 (type),或在另一个函数中运行它。

关于pointers - Clojure 有变量引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15149643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com