なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net (914レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
548: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)17:38 ID:7uWOp/tU(1/14)
つか、末尾再帰ってループそのまんまで再帰の利点ないし
recHoge1(a,n,arg...){
dobefore()...
if(a<n)recHoge1(a,n,arg...);
}
loopHoge1(a,n,arg...){
while(a<n){
dobefore()...
}
}
再帰は無意味、使う必要なし
recHoge2(a,n,arg...){
dobefore()...
recHoge2(a,n,arg...);
doafter()...
}
loopHoge2(a,n,arg...){
while(a<n){
pushargstack();
dobefore()...
popargstack();
doafter()...
}
}
再帰で有意味、この場合使える
549: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)17:44 ID:7uWOp/tU(2/14)
pop,push逆だった
loopHoge2(a,n,arg...){
while(a<n){
popargstack();
dobefore()...
pushargstack();
doafter()...
}
}
550: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)18:00 ID:7uWOp/tU(3/14)
pushargstack();
popargstack();
ユーザー定義のこれらはめんどくさいから
再帰関数使ってコンパイラ任せにするよ
552(1): NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)18:16 ID:7uWOp/tU(4/14)
recHoge1(term,arg...){
dobefore()...
if(term)recHoge1(term,arg...);
}
loopHoge1(term,arg...){
while(term){
dobefore()...
}
}
再帰は無意味、使う必要なし
recHoge2(term,arg...){
dobefore()...
if(term)recHoge2(term,arg...);
doafter()...
}
loopHoge2(term,arg...){
while(term){
popargstack();
dobefore()...
if(term)continue;
pushargstack();
doafter()...
}
}
再帰で有意味、この場合使える
pushargstack(); popargstack();
ユーザー定義のこれらはめんどくさいから、再帰関数使ってコンパイラ任せにするよ
たったこれだけの内容
553: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)18:19 ID:7uWOp/tU(5/14)
>>551
>>552
以上のことの何があるか説明してみてよ
554(1): NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)18:42 ID:7uWOp/tU(6/14)
http://nas6.main.jp/Maze.cpp
再帰、ループ、等価迷路
555: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)18:55 ID:7uWOp/tU(7/14)
recHoge1(term,arg...){
dobefore()...
if(term)recHoge1(term,arg...);
}
loopHoge1(term,arg...){
while(term){
dobefore()...
}
}
再帰は無意味、使う必要なし
recHoge2(term,arg...){
dobefore()...
if(term)recHoge2(term,arg...);
doafter()...
}
loopHoge2(term,arg...){
while(term){
pushargstack();
dobefore()...
if(term)continue;
popargstack();
doafter()...
}
}
再帰で有意味、この場合使える
pushargstack(); popargstack();
ユーザー定義のこれらはめんどくさいから、再帰関数使ってコンパイラ任せにするよ
たったこれだけの内容 、勘違い訂正
556: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)19:03 ID:7uWOp/tU(8/14)
>>554で、
ループ実装が好きなやつはいないと思うんだけどな
558: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)21:51 ID:7uWOp/tU(9/14)
「{C++規則をかなり抑えてCライク}で書かれたソースコード」
のクロスランゲッジなんて、ほぼ、ライブラリの関数名を書き換えるだけだろ
559(1): NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)21:54 ID:7uWOp/tU(10/14)
あ、あと制御構文もちゃっちゃっと書き換えれば出来上がり
566: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)23:00 ID:7uWOp/tU(11/14)
ruby知らんがこんな感じだろ
def recHoge2(term,arg...)
dobefore(arg...)
if term
recHoge2(term,arg...)
end
doafter(arg...)
end
end
def loopHoge2(term,arg...)
while term
pushargstack(arg...)
dobefore(arg...)
if term
next
end
popargstack(arg...)
doafter(arg...)
end
end
567: NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)23:01 ID:7uWOp/tU(12/14) AAS
AA省
568(1): NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)23:07 ID:7uWOp/tU(13/14)
def recHoge2(term,arg...)
dobefore(arg...)
if term
recHoge2(term,arg...)
end
doafter(arg...)
end
で、こんだけで済むのに、
ループにしたいからって
スタックのユーザー定義なんて馬鹿だろう
569(1): NAS6 ◆n3AmnVhjwc [] 2016/01/04(月)23:22 ID:7uWOp/tU(14/14) AAS
AA省
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.040s