なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net

1デフォルトの名無しさん
垢版 |
2015/11/28(土) 18:51:38.86ID:Rc2MJzM/
なあ、再帰関数好きな人いる?
554NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 18:42:48.29ID:7uWOp/tU
ttp://nas6.main.jp/Maze.cpp

再帰、ループ、等価迷路
555NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 18:55:15.40ID:7uWOp/tU
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();
ユーザー定義のこれらはめんどくさいから、再帰関数使ってコンパイラ任せにするよ
たったこれだけの内容 、勘違い訂正
556NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 19:03:49.25ID:7uWOp/tU
>>554で、
ループ実装が好きなやつはいないと思うんだけどな
2016/01/04(月) 21:13:17.67ID:KNqXLa56
RubyかPythonで書き直して
C++とかいうゴミいらねーから
558NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 21:51:32.16ID:7uWOp/tU
「{C++規則をかなり抑えてCライク}で書かれたソースコード」
のクロスランゲッジなんて、ほぼ、ライブラリの関数名を書き換えるだけだろ
559NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 21:54:46.92ID:7uWOp/tU
あ、あと制御構文もちゃっちゃっと書き換えれば出来上がり
2016/01/04(月) 22:07:47.26ID:mZvmD2Em
それをなぜ最初から簡潔な言語で書かないで
わざわざ冗長したC++・C言語といった言語でドヤァとソースコード貼りつけてくるのか、理解しがたいんだけど
カスレベルの初心者である事を数レスに渡る自己紹介でもしにきたのかね?
アルゴリズムの抽象化でC++とか使う奴はその時点で初心者だって一瞬で分かるって言ってるのに
自分が知恵遅れだと分かってないままの奴が続々現れるからこういう場所は話題がループする
2016/01/04(月) 22:08:20.17ID:HCl/OTCR
>>559
死ね
562デフォルトの名無しさん
垢版 |
2016/01/04(月) 22:23:59.40ID:JpzJLk3f
熱烈なC++アンチって速度要求される場面に出会ったことがないんだろな
もしくはフォートラン信者なんだろな
563デフォルトの名無しさん
垢版 |
2016/01/04(月) 22:31:14.13ID:OFaVtQHO
オッパイソンはベーシックみたいなもんで非プログラマが使うのに適してるけど、
プログラマが使うには色々しょぼすぎ。
ペイントショッププロのマクロにオッパイソンが採用されたときは、来るかと思ったけど、
それを機に没落していった。
イヌックスの呪いは有名だけど、オッパイソンの呪いもあるのかもしれん。
564デフォルトの名無しさん
垢版 |
2016/01/04(月) 22:35:24.75ID:OFaVtQHO
しかし、エクセルのマクロ使いはザラにいるのに、他のアプリはマクロ使いが
ほとんどいないんだよな。
イーマックソとか言うウンコは置いといて。
CADなんかマクロの使いであると思うのだが。
Autocadなんかウンコ使いが泣いて喜ぶLisp搭載してるのにな。
なんでだ。
2016/01/04(月) 22:55:58.31ID:8iRyCi7U
とりあえずuyがほんとになにもわかってないことだけわかった
566NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 23:00:49.51ID:7uWOp/tU
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
567NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 23:01:55.35ID:7uWOp/tU
class stack
 def initialize
  @ret = -1
  @crnt = 0
  @MAX_STACK = 32768
  @stk[MAX_STACK]
 end
def pop_stk()
  if -1 < crnt
   ret = stk[crnt]
   crnt = crnt - 1
  end 
 end 
def push_stk(v)
  if crnt < MAX_STACK - 1
   crnt = crnt + 1
   stk[crnt] = v
  end
 end
end
stk = stack
def pushargstack(arg1...argn)
 stk.push_stk(arg1)
 ...
 stk.push_stk(argn)
end
def popargstack(arg1...argn)
 argn = stk.pop_stk()
 ...
 arg1 = stk.pop_stk()
end
568NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 23:07:46.09ID:7uWOp/tU
def recHoge2(term,arg...)
 dobefore(arg...)
 if term
  recHoge2(term,arg...)
 end
 doafter(arg...)
end

で、こんだけで済むのに、
ループにしたいからって
スタックのユーザー定義なんて馬鹿だろう
569NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/04(月) 23:22:49.68ID:7uWOp/tU
再帰をループにしたかったら
こういうのをいちいち作らなきゃだめだよ
class stack
 def initialize
  @crnt = 0
  @MAX_STACK = 32768
  @stk[MAX_STACK]
 end
def pop_stk()
  if -1 < crnt
   ret = stk[crnt]
   crnt = crnt - 1
   return ret
  end 
 end 
def push_stk(v)
  if crnt < MAX_STACK - 1
   crnt = crnt + 1
   stk[crnt] = v
  end
 end
end
2016/01/05(火) 02:57:13.31ID:/kPL7pQm
プログラミング半年目くらいだろうかコイツは
多く見積もって1年半
それ以上なら今すぐPC捨てたほうが良いレベル
571デフォルトの名無しさん
垢版 |
2016/01/05(火) 02:58:35.02ID:3cj4CitF
>>569

http://www.rubylife.jp/ini/

http://www.tohoho-web.com/python/index.html

http://qiita.com/ozw_sei/items/b45e316fced8aec9a97e
572デフォルトの名無しさん
垢版 |
2016/01/05(火) 02:59:25.81ID:CnA8UQLB
 
 
  
死ねカス
573NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 06:30:43.49ID:FnNfbNzM
Array.push()、Array.pop()があるんね
>>568で済む内容を、ループで書きたかったら↓しなければならない

def loopHoge2(term,arg...)
 while term
  pushargstack(arg...)
  dobefore(arg...)
  if term
   next
  end
  popargstack(arg...)
  doafter(arg...)
 end
end

stk = Array.new()

def pushargstack(arg1...argn)
 stk.push(arg1)
 ...
 stk.push(argn)
end
def popargstack(arg1...argn)
 argn = stk.pop()
 ...
 arg1 = stk.pop()
end
574NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 06:44:29.17ID:FnNfbNzM
def recHoge2(term,arg1...argn)
 dobefore(arg1...argn)
 if term
  recHoge2(term,arg1...argn)
 end
 doafter(arg1...argn)
end
↑は、こう↓書き換えられる
def loopHoge2(term,arg1...argn)
 while term
  pushargstack(arg1...argn)
  dobefore(arg1...argn)
  if term
   next
  end
  popargstack(arg1...argn)
  doafter(arg1...argn)
end
end
stk = Array.new()
def pushargstack(arg1...argn)
 stk.push(arg1)
 ...
 stk.push(argn)
end
def popargstack(arg1...argn)
 argn = stk.pop()
 ...
 arg1 = stk.pop()
end
575NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 07:30:28.12ID:FnNfbNzM
#同色上書き塗りつぶし
def refill(dest,src,x,y,color,minx,miny,maxx,maxy)
 if (x < minx) || (maxx < x) ||(y < miny) || (maxy < y)
  return
 end
 dest[y][x] = color
 #上
 if (src[y-1][x] == color) && (dest[y-1][x] != color)
  refill(dest,src,x,y-1,color,minx,miny,maxx,maxy)
 end
 #左
 if (src[y][x-1] == color) && (dest[y][x-1] != color)
  refill(dest,src,x-1,y,color,minx,miny,maxx,maxy)
 end
 #下
 if (src[y+1][x] == color) && (dest[y+1][x] != color)
  refill(dest,src,x,y+1,color,minx,miny,maxx,maxy)
 end
 #右
 if (src[y][x+1] == color) && (dest[y][x+1] != color)
  refill(dest,src,x+1,y,color,minx,miny,maxx,maxy)
 end
end

↑のループ等価が↓
576NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 07:31:25.96ID:FnNfbNzM
stk =Array.new()
#同色上書き塗りつぶし
def loop_refill(dest,src,x,y,color,minx,miny,maxx,maxy)
 term = 0
 while !((x < minx) || (maxx < x) ||(y < miny) || (maxy < y))
  dest[y][x] = color
  #上
  if (term < 1) && (src[y-1][x] == color) && (dest[y-1][x] != color)
   term = 0
   stk.push(x)
   stk.push(y)
   stk.push(term)
   y = y - 1
   term = 0
   next
  end
  #左
  if (term < 2) && (src[y][x-1] == color) && (dest[y][x-1] != color)
   term = 1
   stk.push(x)
   stk.push(y)
   stk.push(term)
   x = x - 1
   term = 0
   next
  end
577NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 07:31:53.09ID:FnNfbNzM
  #下
  if (term < 3) && (src[y+1][x] == color) && (dest[y+1][x] != color)
   term = 2
   stk.push(x)
   stk.push(y)
   stk.push(term)
   y = y + 1
   term = 0
   next
  end
  #右
  if (term < 4) && (src[y][x+1] == color) && (dest[y][x+1] != color)
   term = 3
   stk.push(x)
   stk.push(y)
   stk.push(term)
   x = x + 1
   term = 0
   next
  end
  term = stk.pop()
  y = stk.pop()
  x = stk.pop()
 end
end
578NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 07:34:06.45ID:FnNfbNzM
再帰関数を無理矢理ループで書くことが
正解だなんてとても思えないんだけど・・・
579NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 07:57:54.39ID:FnNfbNzM
>>575-577
はdestにcolorが最初から使われていると、それ以上塗れないバグがあるな
ま、いいか
580NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 08:01:46.66ID:FnNfbNzM
destはコピー先だからそういう条件でクリア済みってことで
581NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 08:14:57.62ID:FnNfbNzM
2色必要だった・・・
srcのx,yからcolor2の連続部分をdestにcolor1で塗りつぶし
#同色上書き塗りつぶし
def refill(dest,src,x,y,color1,color2,minx,miny,maxx,maxy)
 if (x < minx) || (maxx < x) ||(y < miny) || (maxy < y)
  return
 end
 dest[y][x] = color1
 #上
 if (src[y-1][x] == color2) && (dest[y-1][x] != color1)
  refill(dest,src,x,y-1,color1,color2,minx,miny,maxx,maxy)
 end
 #左
 if (src[y][x-1] == color2) && (dest[y][x-1] != color1)
  refill(dest,src,x-1,y,color1,color2,minx,miny,maxx,maxy)
 end
 #下
 if (src[y+1][x] == color2) && (dest[y+1][x] != color1)
  refill(dest,src,x,y+1,color1,color2,minx,miny,maxx,maxy)
 end
 #右
 if (src[y][x+1] == color2) && (dest[y][x+1] != color1)
  refill(dest,src,x+1,y,color1,color2,minx,miny,maxx,maxy)
 end
end
582NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 08:16:57.10ID:FnNfbNzM
>>576-577
も同様に直してね
583NAS6 ◆n3AmnVhjwc
垢版 |
2016/01/05(火) 08:48:45.20ID:FnNfbNzM
recHoge2(term,arg1...argn){
 dobefore(arg1...argn);
 if(term)recHoge2(term,arg1...argn);
 doafter(arg1...argn);
}
この↑再帰関数を無理矢理
loopHoge2(term,arg1...argn){
 while(term){
  pushargstack(arg1...argn);
  dobefore(arg1...argn);
  if(term){continue;}
  popargstack(arg1...argn);
  doafter(arg1...argn);
 }
}
ループで書くのはpushargstack()popargstack()書くのもだし
再帰関数でreturnされた時の箇所で
制御をdoafter()に飛ばすように考えるのもめんどくさい
つまり、再帰関数の構造化の部分までなんでわざわざ
コーディングする必要があるのか謎
2016/01/05(火) 23:45:47.40ID:zRwuHMxA
そうだね、グリーンだね。

任意の再帰はスタックを使えばループに書き直せるし、任意のループは末尾再帰で書き表せるけど
書きやすい方で書いたら良いんじゃない?
配列を舐めるだけのループをわざわざ再帰で書く必要はないし、
二分木を舐めるだけの再帰をわざわざループで書く必要はない。
勿論例外は幾つもあるけどね。
2016/01/06(水) 01:13:15.45ID:kZN9AhFE
死ね → NAS6 ◆n3AmnVhjw
2016/01/06(水) 01:26:34.40ID:2plodUsJ
>>585
語彙少なすぎだろ
2016/01/06(水) 05:38:10.76ID:NwAUbAKq
時間とフィンガーポイントを無駄にしたくない
2016/01/06(水) 11:44:51.16ID:Hrty1iRZ
ばいばい
2016/01/07(木) 03:29:43.72ID:VBUUQOGk
MPC
2016/01/07(木) 14:29:25.41ID:9s+XESwg
>>589
時間とフィンガーポイントを無駄にしない為に今すぐ2chから立ち去るんだ!
さぁ早く!
2016/01/07(木) 23:10:34.37ID:ceukK3gk
またuyが言い負かされてると聞いて
2016/01/08(金) 07:36:31.52ID:37pbuAYe
http://kakaku.com/item/K0000791258/
これを使ってるけど打ちにくい
隙間にゴミが入りにくいキーボードで何か探してくれれば長文レス出来るけど
ゲームもやるから同時押しが出来ないキーボードは使えないんだよ
バッファローのこのキーボード系列は
何故かゲーミングキーボードでもない癖にかなりの同時押しが出来る
お前らもこれくらい社会の役に立ってくれ
2016/01/08(金) 07:58:14.49ID:qSmN42Fw
長文レスなんざしなくていいから死ね
2016/01/08(金) 08:06:15.22ID:t0B3KsjR
ゲームなどという恥ずかしいご趣味をお持ちのようで
2016/01/08(金) 12:51:08.30ID:OGMciHiU
tail callはrecursive callと直行する概念だと理解してないのが何人かいるな
596デフォルトの名無しさん
垢版 |
2016/01/08(金) 12:54:36.23ID:qoujFuKs
直行てなんやねんwてのが何人もいるな
2016/01/08(金) 13:19:39.58ID:39T3KdLp
読みやすい方で書いたらいいんちゃうの?
無理にループにしてソース長くしてテスト項目増やす奴の気がしれんわ
2016/01/08(金) 13:22:10.55ID:39T3KdLp
取り敢えずutがカスだってのは旗から見てわかった

補足しておくけどループで済むものを再起にしろと言ってるわけではないからな
2016/01/08(金) 14:05:20.20ID:qSmN42Fw
そりゃrecursiveじゃないtail callなんざ幾らでもあるわ
2016/01/08(金) 14:44:50.10ID:oo2zXXZh
流し
https://pbs.twimg.com/media/CL3nAldUYAEC9OE.jpg:large
2016/01/08(金) 19:53:25.00ID:XdIzL1DI
仮にもプログラマならHHK使ってます自慢くらいしろよっていう

そういう俺はreal forceだけど。
2016/01/08(金) 22:36:48.34ID:ktsgJ36p
>>595
まっすぐ行ってどうすんねん…
2016/01/08(金) 22:52:34.47ID:Ydps26p4
ワロタ
604デフォルトの名無しさん
垢版 |
2016/01/09(土) 19:28:51.30ID:j10t/SxZ
芸能界で生きていけるレベルの芸だな。
2016/01/13(水) 15:37:06.33ID:KvZEN8k1
自分はプログラマじゃないんだよ
目的を最高効率で達成する事を念頭に置いてるスクリプトキディだ

そして複数人でプログラムを組むときに必要なノウハウなんて持ってない
そもそも自分はそういう事をしなくて良いから、生きてく上で必要無い配慮だから
周りが読みにくいとか知った事ではないし

身分がちげーんだよカス
606デフォルトの名無しさん
垢版 |
2016/01/13(水) 16:53:37.49ID:QjeDGB/s
スクリプトキディの意味も知らないのな
2016/01/13(水) 16:58:20.95ID:4eNfFdO0
(他人の作った)スクリプトを使うしか能の無いお子様

正しく自分のこと理解してるということでいいのかもしれないですね。
608デフォルトの名無しさん
垢版 |
2016/01/13(水) 18:34:23.73ID:QjeDGB/s
正しく自分を理解していたら、あんなバカな生態を晒し続けるわけが無い

スクリプトキディとは、他人の作ったスクリプトでいたずらしてはしゃぐお子様の事だね
2016/01/13(水) 19:01:27.17ID:U6rexLyV
にちゃんに
2016/01/13(水) 19:03:20.75ID:U6rexLyV
誤送信

2ちゃんに書き込んでる地点で効率最悪といえる
2016/01/13(水) 21:24:04.62ID:VbVWsLR9
地点?
2016/01/13(水) 22:25:51.39ID:IMboGSkT
数学的な再帰定義関数は好き
プログラムの再帰定義は多少罪悪感が
2016/01/14(木) 05:26:27.60ID:uv3Ej0dB
身分は再起する
2016/01/15(金) 10:47:33.86ID:u0Mj97aD
>>605
読みやすさを考慮しなくていいとか言うなら、ソースあげんなksが
615デフォルトの名無しさん
垢版 |
2016/01/15(金) 20:31:31.62ID:POz82VxF
まともなプログラムは再帰使わないて
Javaじゃ標準でhashでもvisitorでも使ってるやん
初心者かな?
616デフォルトの名無しさん
垢版 |
2016/01/15(金) 20:52:05.45ID:DNDI2k7a
>>615
ウェブサイトがハッキングされるのはそのせいかもしれませんね。
617デフォルトの名無しさん
垢版 |
2016/01/15(金) 20:59:16.36ID:POz82VxF
ワロタ
何別人ぶってるんだコイツ
618デフォルトの名無しさん
垢版 |
2016/01/15(金) 21:40:58.93ID:bARE8Ecx
Javaがまともじゃないとか何様だよ
619デフォルトの名無しさん
垢版 |
2016/01/15(金) 22:51:22.58ID:DNDI2k7a
Haskellを知ればJavaなんぞ子供のおもちゃにも及ばない。
2016/01/15(金) 22:52:36.63ID:nz6sd5//
でも cloujure が気になるのです‥
621デフォルトの名無しさん
垢版 |
2016/01/16(土) 20:53:37.66ID:mv0cs2FW
データベース扱いにくいゴミ
622デフォルトの名無しさん
垢版 |
2016/01/16(土) 22:18:41.95ID:8IHN4wdz
データベースは扱いにくいゴミだそうです。
2016/01/17(日) 15:36:45.95ID:LBaM8j14
いや、もしかしたら
データベースを扱うのに困難を伴うゴミ人間って意味かも
624デフォルトの名無しさん
垢版 |
2016/01/17(日) 18:00:23.51ID:UWpoaTz9
もしかして、もしかしてだけどさ、Haskelのこと言ってるんじゃね?
2016/01/18(月) 05:28:47.91ID:lC5RiWYz
Haskellほどデータベース扱いやすい言語も少ないからそれはない
626デフォルトの名無しさん
垢版 |
2016/01/18(月) 20:02:16.24ID:DTRfKFLk
世界一のデータベースを持つと言われるGoogleがHaskellで動いているくらいだからね。
2016/01/18(月) 20:42:43.12ID:1d5YkXP9
Haskellって実用で使われてんのかw
おもちゃかと思ってたわw
628デフォルトの名無しさん
垢版 |
2016/01/19(火) 15:31:29.42ID:py3nDmvs
おもちゃだよ
Googleのおもちゃ
2016/01/19(火) 21:26:53.35ID:C1tOs2Eu
この世はおもちゃで十分
2016/01/20(水) 12:31:10.14ID:K5mS7ftq
2ちゃんは漏れらのおもちゃ
631デフォルトの名無しさん
垢版 |
2016/01/20(水) 17:52:59.34ID:Evm4j3E4
漏れらとか使う香具師久しぶりに見たわ
2016/01/20(水) 19:02:11.21ID:aKBKow0I
イッテヨシとかギコはにゃーんとかもう死語なんだろうな。
ゴルァはまだありかな。
2016/01/21(木) 12:48:08.73ID:zpe1QHZ3
ヌルポにはガッっていうのはなぜだったのか理由がいまだに判らないので
香具師にどう反応すればいいのかも判らない
2016/01/21(木) 23:38:12.84ID:C4EemGup
>>633
ぬるぽにかぎらず、例外発生したら、ガッ!
2016/01/22(金) 01:18:00.03ID:G5rv7JJ3
>>633
NullPointerExceptionをぬるぽと呼ぶスレだかなんだかいうスレタイのスレが立った2分後に
2が1にガッしたから

だった筈
2016/01/22(金) 11:22:37.47ID:vIHZAGQE
ヌルポ
637デフォルトの名無しさん
垢版 |
2016/01/22(金) 17:22:39.92ID:AzZButyZ
たたき続けなさい
さすればヌルポは失せるでしょう
2016/01/23(土) 18:27:15.12ID:TOjqi36j
>>636
catch
2016/01/23(土) 18:56:26.79ID:0d2orZXz
>>638
ガッてキャッチのことだったの?
640デフォルトの名無しさん
垢版 |
2016/01/31(日) 18:53:58.36ID:N9Aq8poo
>>638
そしてスローせず
2016/01/31(日) 21:42:25.99ID:OzonL4m2
ガッはガッチャの略だろ。 ガッチャマンでお馴染みのガッチャはI have got you.の略で捕まえたとかの意味。
642デフォルトの名無しさん
垢版 |
2016/02/01(月) 01:42:44.99ID:IP+vl4xQ
でもアメリカのドラマ見てると了解するときにガッチャ!って言ってるよね。
特にチャーリーズエンジェルのカエル顔が(別のドラマでも)言ってるような気がする。
2016/02/19(金) 20:26:15.94ID:wEwKzS1i
再帰使うとエラーの予測が立てにくい
2016/02/19(金) 22:00:01.71ID:eeiEIdAh
それ再帰のせいじゃなくてもともと難しいアルゴリズムなんじゃ
2016/02/19(金) 22:04:28.48ID:jxx0XdOv
再帰の方が簡単に難しいアルゴリズムを作れる
2016/02/19(金) 22:41:27.96ID:wEwKzS1i
同じコードでも言語やバージョンの違いで即死する可能性があるのがネック。
可能ならwhileにするよ。
どうでもいいスクリプトなら木にしないけど。
べ、別に再帰関数苦手なわけじゃないんだからね!
2016/02/24(水) 00:10:47.14ID:i1Xglt1a
再帰否定する奴は局所変数も否定すんの?
648uy ◆Qawu9.2l1E
垢版 |
2016/02/25(木) 06:44:19.41ID:loCQbBq3
再帰否定派は生きるのがつらいんだよ
いつも周りのもの何もかも否定してるよ
2016/02/25(木) 12:35:19.93ID:tc7lGvfi
無限か有限かを判別するだけでも難しい再帰コールが簡単に作れるからな
2016/02/25(木) 22:13:06.90ID:OuMkr9Sq
ループなら無限か有限か簡単に判別できるとでも?
2016/02/26(金) 03:25:44.03ID:VdCPJ0Vc
再帰の方が簡単に作れる
2016/02/26(金) 03:33:16.76ID:VdCPJ0Vc
例えば再帰を使えばC++149文字で数学的に非常に判別が難しいコードが作れる
ステップ数がF_φ_ω(0) (n)のオーダー
再帰を使わないともっとずっと必要な文字数は増える
653デフォルトの名無しさん
垢版 |
2016/02/26(金) 12:24:24.63ID:x5+an1W2
つまり再帰を使うと簡単に分かりにくいコードが書けてしまうというアピール

アホなのこいつ?
2016/02/26(金) 12:55:19.99ID:V8jyQAYV
まともなプログラマーしかいなけりゃ問題ないよ
レスを投稿する