相互に依存する変数を定義する必要があります。これは、1つの変数が別の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
を、それがどのように動作するかをないthatsの。 このような構造体を印刷するとスタックオーバーフローが発生することは理解できますが、印刷する必要はありません。私はどうすればいいのですか?
はい、私はヴァルスで何かをするべきだと思いました。ありがとう。私がしたいことは次のとおりです。いくつかの種類のエンティティの多対多の関係を(潜在的に)記述する必要があります。これらのタイプとその関係は一定です。私はそれらを互いに参照を持つvarsとして定義したいので、別の型によって参照される型を取得したい場合、 '(first(:references src-type))'のような簡単なことができます。 –
あなたはおそらく正しいでしょう。多分グローバルマップを使用して、単純なキーワードで参照する必要があります。あなたはどう思いますか?それはより良いアプローチでしょうか? –
はい、キーワードを使った大きな地図がうまくいくと思います。すべての単なるデータです。コピーを作成したり、シリアル化したり、テストケースなどのために異なるバージョンを作成することができます。マップを使用すると簡単ですが、ヴァルスを使用しようとすると非常に手早くなります。 – mikera