アカウント名:
パスワード:
ロジックを設計した段階で再帰的になってれば再帰呼び出しで実装するしロジックを設計した段階で単純ループになってればループ構造で実装する。
そのように考える方が分かりやすいからそういうロジック設計になっているのだしリソースが潤沢な時代だからどっちでもいい。
趣味では使うが、仕事では積極的に使わない。ハイエンドのマシンを使う顧客とか、ピーク時でギリギリ扱えるぐらいの余力だったりする。やはり、リソースが潤沢という前提が成り立つかどうかかが、業務などの環境依存なので環境依存のコードを入れるのは避けたいところ。
色んな顧客がいて、負荷がかかるコンポーネントも少しずつ違うし、負荷特性の違う顧客にそれぞれの顧客に対して、再起呼び出しで使うスタックサイズが十分であることを保証し続けることが面倒。
顧客のシステムが運用中にスタックオーバフローで落ちるとか目も当てられないので、まずは、見積もり式が必要になるが、これを作成し、メンテナンスし続けるのが手間。再起関数を修正すると、必要なスタックサイズも変更になるし、その度に再見積もりさせる訳にもいかない。というより、再起呼び出しを使わなくても、スタックに置くデータサイズには気を使う。ヒープ見積もりも、見積もりしやすいようにデータ構造の管理方法とか工夫しているくらい。
これ。再起呼び出しの使いづらさは、「スタックの使用量の見積と確保が困難」という点に尽きる。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
どっちで考えるかだけ (スコア:2, 興味深い)
ロジックを設計した段階で再帰的になってれば再帰呼び出しで実装するし
ロジックを設計した段階で単純ループになってればループ構造で実装する。
そのように考える方が分かりやすいからそういうロジック設計になっているのだし
リソースが潤沢な時代だからどっちでもいい。
Re:どっちで考えるかだけ (スコア:2)
趣味では使うが、仕事では積極的に使わない。
ハイエンドのマシンを使う顧客とか、ピーク時でギリギリ扱えるぐらいの余力だったりする。
やはり、リソースが潤沢という前提が成り立つかどうかかが、業務などの環境依存なので環境依存のコードを入れるのは避けたいところ。
色んな顧客がいて、負荷がかかるコンポーネントも少しずつ違うし、負荷特性の違う顧客にそれぞれの顧客に対して、
再起呼び出しで使うスタックサイズが十分であることを保証し続けることが面倒。
顧客のシステムが運用中にスタックオーバフローで落ちるとか目も当てられないので、
まずは、見積もり式が必要になるが、これを作成し、メンテナンスし続けるのが手間。
再起関数を修正すると、必要なスタックサイズも変更になるし、その度に再見積もりさせる訳にもいかない。
というより、再起呼び出しを使わなくても、スタックに置くデータサイズには気を使う。
ヒープ見積もりも、見積もりしやすいようにデータ構造の管理方法とか工夫しているくらい。
Re: (スコア:0)
これ。再起呼び出しの使いづらさは、「スタックの使用量の見積と確保が困難」という点に尽きる。