アカウント名:
パスワード:
はい、クラス/構造体に入れるの面倒でグローバル転がしてテストしてそのままなんてのはよくやっちゃいます。あとはデバッガで追いやすいようにローカルに使われるものを広域変数にしといてそのままとか、ゼロ割発生直前でチェックして済ますとか(元から絶たない)他になにかuglyな例はあるでしょうか。
・引数を考えるのが面倒で大域変数で渡した・引数が必要なのは明白だが、何をもらえばいいのかわからないのでvoid *にしておいた・構造体の後ろにダミーをつけると落ちなくなった
上のは8ビット時代の話だが、今でもやるのは引数に再代入してgotoか
末尾最適化はコンパイラの仕事かと。アホなコンパイラしか使えない場合はその限りではないけれども。
(Alfred Vaino) Aho なコンパイラ…そそる。じゅるる
末尾最適化がどう関係するんですか?
そのテクニックが手作業による末尾再帰最適化だからですよ。
関数内で引数を設定しなおして頭にgotoするのは、その箇所で自身を再帰で呼んで戻り値をそのままreturnするのとほぼ同じ事。これについて末尾再帰最適化が掛かると頭にgotoするようなコードに自動変換され、スタックの消費量その他が節約される。
誰が頭にgotoするんですか?
理解できないのにコメントするのは自分の無知を晒すだけですよ
if文の本体などスコープの内側にgotoするのに、末尾再帰が何の関係があるんですか?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
もしかして: やっつけ (スコア:0)
はい、クラス/構造体に入れるの面倒でグローバル転がしてテストしてそのまま
なんてのはよくやっちゃいます。
あとはデバッガで追いやすいようにローカルに使われるものを広域変数にしといてそのままとか、
ゼロ割発生直前でチェックして済ますとか(元から絶たない)
他になにかuglyな例はあるでしょうか。
Re: (スコア:0)
・引数を考えるのが面倒で大域変数で渡した
・引数が必要なのは明白だが、何をもらえばいいのかわからないのでvoid *にしておいた
・構造体の後ろにダミーをつけると落ちなくなった
Re: (スコア:0)
上のは8ビット時代の話だが、今でもやるのは引数に再代入してgotoか
Re:もしかして: やっつけ (スコア:0)
末尾最適化はコンパイラの仕事かと。
アホなコンパイラしか使えない場合はその限りではないけれども。
Re:もしかして: やっつけ (スコア:1)
(Alfred Vaino) Aho なコンパイラ…そそる。じゅるる
Re: (スコア:0)
末尾最適化がどう関係するんですか?
Re: (スコア:0)
そのテクニックが手作業による末尾再帰最適化だからですよ。
関数内で引数を設定しなおして頭にgotoするのは、その箇所で自身を再帰で呼んで戻り値をそのままreturnするのとほぼ同じ事。
これについて末尾再帰最適化が掛かると頭にgotoするようなコードに自動変換され、スタックの消費量その他が節約される。
Re: (スコア:0)
誰が頭にgotoするんですか?
Re: (スコア:0)
理解できないのにコメントするのは自分の無知を晒すだけですよ
Re: (スコア:0)
if文の本体などスコープの内側にgotoするのに、末尾再帰が何の関係があるんですか?