問題タブ [recursion]
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.
language-agnostic - 再帰か反復か?
私は再帰が大好きです。私はそれが物事を非常に単純化すると思います。別の人は同意しないかもしれません。コードも読みやすくなっていると思います。ただし、C# などの言語では、LISP ほど再帰が使用されていないことに気付きました (ちなみに、LISP は再帰のために私のお気に入りの言語です)。
C# などの言語で再帰を使用しない正当な理由があるかどうかを知っている人はいますか? 繰り返しよりも高価ですか?
c# - Spring.Net の再帰メソッドにアドバイスを注入しますか?
AOP に対する Spring.NET のサポートを使用して、依存関係の注入/制御の反転/アスペクト指向プログラミングを実行しようとしています (たくさんの流行語で申し訳ありませんが、誰かに違いを明確にするように求める別の質問を投稿するかもしれません :) ) .
具体的には、メソッドが呼び出されるたびに AOP アドバイス/インターセプターが呼び出されるように、再帰的なメソッド呼び出しをインターセプトしたいと考えています。
Spring.Net は、最初のメソッド呼び出し以外は傍受していないようです。Spring.Netはインスタンスごとに正確に 1 つのインターセプター チェーンを維持しており、最初のメソッド呼び出しが完了するまでインターセプターをこれ以上呼び出さないと思います。
再帰呼び出しを含む、すべてのメソッド呼び出しに対してインターセプター (アドバイス) をトリガーすることに関する情報はありますか?
役立つ場合は、コード/出力例を提供できます。ありがとう!
python - Pythonで再帰関数を作成するにはどうすればよいですか?
Pythonで再帰関数を作成するにはどうすればよいですか?
algorithm - アルゴリズムに再帰またはメモ化を使用する必要がありますか?
問題を解決するために再帰またはメモ化を使用する選択肢がある場合、どちらを使用する必要がありますか? 言い換えれば、それらが正しい出力を提供し、使用しているコードで合理的に表現できるという点で両方とも実行可能なソリューションである場合、いつ一方を他方よりも使用するのでしょうか?
python - Pythonでラムダ関数を再帰的に呼び出すことはできますか?
通常の関数には、その定義にそれ自体への呼び出しを含めることができますが、問題ありません。ラムダ関数には参照する名前がないという単純な理由で、ラムダ関数でそれを行う方法がわかりません。それを行う方法はありますか?どのように?
sql - メニューシステムの再帰的 SQL
次の構造を持つメニュー システムのテーブルといくつかのデータがあります。
必要なのは、メニュー ID を渡すことができるクエリであり、その ID を子として持つアイテムのリストを返します。しかし、宛先への有効なパスを持つ子のみを返す必要があります。上記の例では、ユーザーには最初に (アプリケーション、ゲーム) が表示され、アプリケーションを選択すると (オフィス) が表示されます。Text Editing と Media は、その下に有効な宛先がないため、省略してください。
これに関する最も厄介な点は、特定のメニューに事前に決定された深さが存在しないことです。
編集:
今日、問題は MS SQL 2008 で発生しましたが、過去 2 週間で、SQLite と SQL CE に対して同様のソリューションが必要でした。理想的なソリューションは、特定の SQL エンジンに縛られるべきではありません。
javascript - JavaScript関数の引数を再帰的に連結する
関数に渡されたすべての文字列を連結する 1 行の JavaScript コードを作成してください:
@ミーボ
関数の引数がインデックス付きオブジェクト MAYBE 配列として表されているのを見て、再帰的な方法で実行できると思いました。ただし、再帰的な実装でエラーがスローされます。--"conc.arguments.shift は関数ではありません" --
conc.arguments は配列ではないようですが、数値インデックスでアクセスでき、長さプロパティがありますか??? 紛らわしいです -- 意見やその他の再帰的な実装を共有してください。
ありがとう
c# - C#ラージツリーの反復
親子関係で組み立てられた大きな結果セットがあります。ツリーを歩き、結果をユーザーに表示する必要があります。
再帰を使用する前にこれを実行しましたが、結果セットが大きい可能性があるため、StackOverflowExceptionを受け取る可能性を回避したいと思います。
スタックを使用するMSDNで次の例を見つけました。私が抱えている問題は、スタックが後入れ先出しであるため、データが正しく表示されないことです。次のようにしたいと思います。
しかし、次のようになります。
何か案は?
これが私のコードの例です。に次の列があると仮定しDataTable dt
ます:ID、ParentID、およびText
sql - Postgres での親子データベース関係の上昇
次の例のテーブルがあります (実際には、ここのスタックオーバーフローの別の例から取得したものです...)
特定の子が与えられた場合、最上位の親を取得したいと考えています。
私は tablefunc connectby 関数を知っていますが、それは親の子を取得するためのものです。
しかし、私は別の方向に興味があります。子供の最上位の親は何ですか? どのタイプのクエリを試して使用しますか?
フレンドリーなアドバイスをいただければ幸いです。
php - PHP RecursiveIteratorIterator とネストされたセット
階層内に一連のオブジェクトがあります。最上位の「ルート」ノードがあり、子ノードがあり、子ノードなどがあります。ネストされたセットモデルを使用して、この構造をDBに保存しようとしています。各ノードの各「側」は定義するために番号が付けられていますMySQL での階層データの管理のように、階層:
(ソース: mysql.com )
私の問題は、左右の値を計算することです。私は通常、RecursiveIteratorIterator を使用して階層を反復処理しますが、参照によってインデックス変数を解析する再帰関数に頼らずに数値を計算する方法を見つけることはできません。
何か案は?
おそらく役に立たないでしょうが、これは私が現在持っている(間違った)コードです:
ご覧のとおり、次のようになります。
次の左右の値:
それらがいつあるべきか: