トップページ > プログラム > 2015年12月27日 > yWds0j/q

書き込み順位&時間帯一覧

18 位/182 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000020100000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net

書き込みレス一覧

なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
372 :デフォルトの名無しさん[sage]:2015/12/27(日) 11:23:28.75 ID:yWds0j/q
繰り返しの方が再帰より速い!
(ただしシェルスクリプトに限る)
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
376 :デフォルトの名無しさん[sage]:2015/12/27(日) 11:43:09.26 ID:yWds0j/q
>>374
明示的なスタック操作と大差ないのでは?
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
387 :デフォルトの名無しさん[sage]:2015/12/27(日) 13:08:45.42 ID:yWds0j/q
>>378
tail callを繰り返しに変換できるようなケースだと
関数呼び出しはコスト高かも知れないが、
ループ版では明示的スタック操作をしなければならない場合、
call,ret相当のことをjpと組み合わせて明示的にやらないといけない。
通常、関数呼び出し後のスタックフレームの確保はcalleeが明示的にやるからループ版と変わらないが、
スタックフレームの開放はretが自動的にやる。
だからコスト的には大差なく、
関数呼び出しの方が有利なケースだってあるはず。

繰り返しの明示的なスタック操作が圧倒的有利にあるのは、
FILOじゃなくてFIFOにしたり戦略が建てられること。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。