相互に依存する変数を定義する必要があります。これは、たとえば、1 つの var に別の var を持つベクトルが含まれていること、およびその逆のことを意味します。これを次のコードで示します。
(declare a b)
(def a [1 b])
(def b [a 2])
しかし、このコードをロードすると、次のようになります。
test=> (first a)
1
test=> (second a)
#<Unbound Unbound: #'test/b>
test=> (first b)
[1 #<Unbound Unbound: #'test/b>]
test=> (second b)
2
明らかに、それはどのように機能するべきではありません。このような構造を印刷するとスタックオーバーフローが発生することは理解していますが、印刷する必要はありません。どうすればいいですか?