問題タブ [recursive-datastructures]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2621 参照

c++ - Operator[] 多次元配列 c++ でのオーバーロード

私が電話するとき:a7[0][1][100];

の最初のインデックスを取得できます0operator[]、インデックスとして他のインデックス値 1 と 100 を再帰的に取得することはできません。operator[]再帰的な次のインデックス値を取得するためにどのように使用できますか。この 3 次元配列の例では、operator[]は最初の次元である に対して 1 回だけ呼び出され0ます。

私のコード例は次のとおりです。

0 投票する
1 に答える
430 参照

scala - オブジェクトの値の初期化順序: 循環/再帰オブジェクトを適切にセットアップする方法は?

次のコード

 

 

情報にアクセスする順序が次の場合、機能します。

出力は期待どおりです。

本当にそこにある列: Tenant_id としての真の
Tenant.id、Tenant_name としての Tenant.name

ただし、順序が逆の場合は失敗します。

この場合、出力は

実際に存在する列: Node_id として真の
Node.id、Node_tenantId として Node.tenantId、Node_nodeId として Node.nodeId、Node_name として Node.name
列が実際に存在: false
列 List(null, null)

スレッド「メイン」での例外 java.lang.NullPointerException

Scala 2.10.1 を使用

背景情報:

  • オブジェクト定義は、RDBMS の論理データ モデルを記述します。
  • テーブルはその列 (子) を認識し、各列は自分のテーブル (親) を認識します
  • 外部キー列には、親テーブルの主キー列を説明するオプションのプロパティがあります
  • この関係は再帰的です (ノード テーブルは再帰的です)。
  • テーブルと列の個々の定数が必要です。
  • できればvarは避けたい

言語仕様のセクションを見つけました (5.4)

オブジェクト定義によって定義された値は遅延してインスタンス化されることに注意してください。

これは、実際にセットアップできるようにするために必要です。「値」(プロパティ)とは対照的に、「値」はオブジェクト全体を意味すると思います。

とにかく、列プロパティのインスタンスは明らかに作成されていますが、その要素はまだ「具体化」されていません。これは、2 回目の実行の出力に表示されます。

初期の定義を使用して解決しようとしましたが、この場合、コンパイラはobject を含む不正な循環参照を訴えるため、これはコンパイルされません:

だから私の質問は:

  • なぜ失敗するのですか?
  • 列プロパティはどの状態ですか (リストは存在しますが、要素は null です)。
  • これを正しく設定するにはどうすればよいですか?または、循環/再帰的な性質のため、回避策として定義された順序で具体化する必要がありますか?

更新/解決策

0__ の回答に基づく: 解決策は、 columns プロパティを遅延として宣言し、抽象 valdefに変更することで構成されます。

columns プロパティの状態について: scalac のコマンド ライン オプションに-Xcheckinitを指定すると、追加の実行時チェックが追加されます。この場合、次のエラーが表示されます。

原因: scala.UninitializedFieldError: 未初期化フィールド: RecursiveObjects.scala: 35

それ以外の場合、このエラーは黙って無視されるため、リストには null のみが含まれます。

0 投票する
2 に答える
1771 参照

comparison - 2 つの Coq 誘導型のサイズの減少を示す方法

game組み合わせゲームの誘導型を定義しようとしています。lessOrEq2 つのゲームが、greatOrEqlessOrConfまたはであるかどうかを判断する比較方法が必要greatOrConfです。次に、2 つのゲームが両方とも である場合に等しいかどうかを確認できlessOrEqますgreatOrEq

しかし、このチェックを行うための相互再帰的なメソッドを定義しようとすると、次のようになります。

エラー: の減少引数を推測できませんfix

これは、再帰呼び出しごとにどちらか一方のゲームのサイズだけが減少するためだと思います (両方ではありません)。これをCoqにどのように示すことができますか?

これが私のコードです。失敗する部分は、 、 、 の相互再帰的gameCompareinnerGCompare定義listGameCompareですgameListCompare

0 投票する
2 に答える
1888 参照

asp.net - Dataset から親子 (再帰関係) のリストを生成する

再帰的な関係を持つリスト (HTML) を作成しようとしています。データはデータセット内にありますが、簡単であればデータ テーブルに変換できます。

これを達成するための最良の選択肢は何なのかわかりません。ネストされたリピーターの使用を考えていました。

データは次のとおりです。

ここで私が生成したい出力

0 投票する
1 に答える
448 参照

php - 配列ツリーの線形表現

言語 => タイプ => 製品 => などの 1 対 1 の線形ツリーがあります。言語には多くの型があり、型には多くの製品があります。

次のスタイルで配列を返す再帰関数を作成しました。

私が欲しいのは、そのツリーをトラバースし、次のような配列を提供する再帰メソッドです。

0,1,2 がその要素に等しいdepthので、データのブレッドクラムを作成できます。

ありがとうございました。