板検索:
なあ、再帰関数好きな人いる? パート3 (823)
まとめビュー
1
デフォルトの名無しさん[]   投稿日:2015/11/28 18:51:38  ID:Rc2MJzM/.net
なあ、再帰関数好きな人いる?


2
デフォルトの名無しさん[sage]   投稿日:2015/11/28 18:55:04  ID:SbMJmhTc.net
わくわく

3
デフォルトの名無しさん[sage]   投稿日:2015/11/28 19:23:33  ID:mf/sQ31/.net
嫌いな奴なんて見たことない

4
デフォルトの名無しさん[sage]   投稿日:2015/11/28 19:30:25  ID:R0seH/nX.net(13)
ループで書けるものはループで書く。
再帰使うのは仕方ない場合だけ。

5
デフォルトの名無しさん[sage]   投稿日:2015/11/28 19:53:36  ID:R0seH/nX.net(13)
スタック的なメモリ確保が必要かどうかがループと再帰を使い分ける分岐点じゃね。
末尾再帰最適化とかは本末転倒なイメージ。
コメント2件

6
デフォルトの名無しさん[sage]   投稿日:2015/11/28 20:05:09  ID:N2qWmI2+.net

7
デフォルトの名無しさん[sage]   投稿日:2015/11/28 20:30:33  ID:Tq6BVuZs.net(2)
>5
ループ実装を隠せるのは大きいよ
抽象化はプログラミング言語の進化のベクトルと一致するからね

8
デフォルトの名無しさん[sage]   投稿日:2015/11/28 20:39:12  ID:R0seH/nX.net(13)
ループより再帰のほうが抽象度が高いと言っている?
そこは俺にはよくわからん。

俺的にはプログラムには必要最小限の機能を使うべきで、
本質的にループより再帰のほうが強力なのだから
可能な限りループを使うべきと思ってる。

もちろん再帰をループにするためにスタックを自前で用意するといったことでは本末転倒だが。
コメント2件

9
デフォルトの名無しさん[sage]   投稿日:2015/11/28 20:41:49  ID:R0seH/nX.net(13)
ツリーの巡回は再帰を使ったほうがいいだろう。
リストの巡回はループでいいんじゃね?
コメント1件

10
デフォルトの名無しさん[sage]   投稿日:2015/11/28 20:48:22  ID:Tq6BVuZs.net(2)
>8
> 俺的にはプログラムには必要最小限の機能を使うべき
そういうのはコンパイラなりインタプリタなりが頑張るべきところだと思うね
人間はより抽象化された対象を扱うようにするのがモダンなプログラミング言語の方向だし

11
デフォルトの名無しさん[]   投稿日:2015/11/28 20:52:46  ID:fFSPKhVt.net(7)
抽象的なスレだな

12
デフォルトの名無しさん[sage]   投稿日:2015/11/28 20:58:39  ID:R0seH/nX.net(13)
うーん。必要な抽象化は歓迎するが無駄な抽象化は歓迎しないというか。

この例は再帰とは関係ないけどJavaのファイル入出力なんかは
結構複雑な作りになってて無駄な抽象化なんじゃねーのとか思ってしまう。
まあ、俺個人の感想だが。

13
デフォルトの名無しさん[sage]   投稿日:2015/11/28 21:12:02  ID:M/Wigktg.net
アルゴリズムが再帰なら普通に再帰で書く
スタックサイズ制限とかあるなら別だけど

14
デフォルトの名無しさん[sage]   投稿日:2015/11/28 21:30:44  ID:10sD81C/.net
アルゴリズムが再帰であってもクイックソートなど
再帰のままじゃあ使い物にならんものがいくらでも。

15
デフォルトの名無しさん[sage]   投稿日:2015/11/28 21:32:52  ID:R0seH/nX.net(13)
スマンw クイックソートは再帰で書くわw

16
デフォルトの名無しさん[]   投稿日:2015/11/28 21:34:06  ID:fFSPKhVt.net(7)
書いたことないくせにw


17
デフォルトの名無しさん[sage]   投稿日:2015/11/28 21:52:35  ID:R0seH/nX.net(13)
書いたことはあるけど10年以上昔の話だな。
これは拾い物だけどクイックソートなんてこれだけのことだろ。

qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

18
デフォルトの名無しさん[]   投稿日:2015/11/28 22:09:37  ID:fFSPKhVt.net(7)
リストの巡回はループでいいんじゃないんかw

19
デフォルトの名無しさん[sage]   投稿日:2015/11/28 22:13:01  ID:R0seH/nX.net(13)
クイックソートは単純な巡回とは違うだろ。
だからスタック的なメモリを必要とするかどうかだよ。

20
デフォルトの名無しさん[]   投稿日:2015/11/28 22:21:22  ID:fFSPKhVt.net(7)
filterはリストの巡回とちゃうんかw

21
デフォルトの名無しさん[sage]   投稿日:2015/11/28 22:25:38  ID:R0seH/nX.net(13)
filterの実装がどうなってるかまでは知らんがな。

22
デフォルトの名無しさん[]   投稿日:2015/11/28 22:32:42  ID:fFSPKhVt.net(7)
知らんなら最初からそう言えやw

23
デフォルトの名無しさん[sage]   投稿日:2015/11/28 22:39:27  ID:R0seH/nX.net(13)
なんか変なテンションだなぁ
俺がC++とかでfilter相当の関数書かにゃならんくなったらループで書くよ。

24
デフォルトの名無しさん[]   投稿日:2015/11/28 22:44:37  ID:fFSPKhVt.net(7)
クイックソートはhaskellでfilterはc++なんか?
なんか変な奴だなぁニヤニヤ

25
デフォルトの名無しさん[sage]   投稿日:2015/11/28 22:49:36  ID:R0seH/nX.net(13)
何が変か、わからん。
まあ関数型言語なんかは再帰推奨らしいがあんまり好きになれん。
コメント1件

26
デフォルトの名無しさん[]   投稿日:2015/11/28 22:59:20  ID:fFSPKhVt.net(7)
推奨なんて生易しいもんじゃないで。
理論に囚われすぎて原理主義に陥いった餓鬼共やw

27
デフォルトの名無しさん[sage]   投稿日:2015/11/28 23:05:01  ID:R0seH/nX.net(13)
まあ参照透過性とかは原理主義か?という気はする。

28
デフォルトの名無しさん[sage]   投稿日:2015/11/28 23:29:11  ID:W0C1+0hV.net
やっぱハノイの塔は再帰
有能

29
デフォルトの名無しさん[sage]   投稿日:2015/11/28 23:38:40  ID:SyBhAT0R.net
お遊びに使うためのものだね。
再帰なんて。

30
デフォルトの名無しさん[sage]   投稿日:2015/11/28 23:40:05  ID:1kauGQoG.net
>8
ループでquicksort書いてみてくれ
上のコードと比較で見るだろ
言語は好きに選んでいい

31
デフォルトの名無しさん[sage]   投稿日:2015/11/28 23:45:06  ID:R0seH/nX.net(13)
ループでクイックソート書こうとするとスタック的なものを自前で用意せにゃならんのじゃないか。
めんどくさすぎ。

32
デフォルトの名無しさん[sage]   投稿日:2015/11/28 23:51:19  ID:oWRhnwkW.net
なんかやたらと再帰がお遊びだと連呼する奴がいるが、どういう意図で言っているのか分からん。
お遊び感覚で動くものが作れるのだから、苦労しなくていい分優れているってこと?
コメント1件

33
デフォルトの名無しさん[sage]   投稿日:2015/11/29 00:02:43  ID:aMnBRPWz.net(3)
>25
関数型言語は変数再代入禁止(のものが多い)から、そもそもループは書けないんだよね
コメント1件

34
デフォルトの名無しさん[]   投稿日:2015/11/29 00:04:00  ID:BjpFnvXY.net(3)
再帰がお遊びだ
再帰がお遊びだ
再帰がお遊びだ

>32が可哀想だから連呼してあげたよ

35
デフォルトの名無しさん[]   投稿日:2015/11/29 00:06:31  ID:BjpFnvXY.net(3)
あ、意味は「お遊び感覚で動くものを作るな」という事です。

36
デフォルトの名無しさん[sage]   投稿日:2015/11/29 00:10:17  ID:aMnBRPWz.net(3)
動くんならいいんじゃないの?

37
デフォルトの名無しさん[sage]   投稿日:2015/11/29 00:20:09  ID:iZIE7tB6.net
ま〜た関数型コンプレックスのアホが暴れてるのか

38
デフォルトの名無しさん[sage]   投稿日:2015/11/29 00:24:10  ID:aMnBRPWz.net(3)
関数型は関数脳にならないと書けないからねー
手続き脳がしみついてると貶す対象にしかならないよね

39
デフォルトの名無しさん[]   投稿日:2015/11/29 00:29:56  ID:BjpFnvXY.net(3)
お前ら俺を笑い死にさせる気かw

40
デフォルトの名無しさん[sage]   投稿日:2015/11/29 03:56:07  ID:1KywF+Vz.net
初めて知った時すごいと思いました

41
uy ◆Qawu9.2l1E [sage]   投稿日:2015/11/29 04:26:32  ID:RQPUWZLH.net
せっかく埋め立てたのに何またスレ立ててんのゴミクズ

42
デフォルトの名無しさん[sage]   投稿日:2015/11/29 06:56:51  ID:GeZFA4k5.net
ぼくたん初心者なのでわからんけど僕が今作ってる
関数から値を求める計算プログラムで再起型関数が大活躍してるお
たぶん今僕がやってる書き方が一番きれいだと思うんだけどなー

43
デフォルトの名無しさん[sage]   投稿日:2015/11/29 15:21:16  ID:+8PPW4GA.net(5)
> たぶん今僕がやってる書き方が一番きれいだと思うんだけどなー
いろんな方法で書いてみないと比較できないんじゃね?

44
デフォルトの名無しさん[sage]   投稿日:2015/11/29 15:49:46  ID:BHpn4xqB.net(2)
クイックソートで再帰なんてありえんと
さんざん言われ続けているのに、まだバカが湧いとるんだな。

ライブラリのループ版を使えば何の手間もかからず高速処理ができるのに
わざわざ問題ありまくりの再帰で書くなんてテロ同然の暴挙。
コメント1件

45
デフォルトの名無しさん[]   投稿日:2015/11/29 16:17:12  ID:1uX74bCE.net
>44
それって結局真の再帰を見たことがないからそう思い込んでるだけだよね。
見せてやるよ、真の再帰ってやつをな。
https://ideone.com/EDtRIH
コメント1件

46
デフォルトの名無しさん[sage]   投稿日:2015/11/29 16:52:01  ID:+8PPW4GA.net(5)
もうソーティングの話は良いよ、仕事で使う大抵の言語ではライブラリとして用意されてるんだから。

47
デフォルトの名無しさん[sage]   投稿日:2015/11/29 17:09:26  ID:BHpn4xqB.net(2)
>45
再帰じゃあ、10件程度のソートに控えるという事なんだよな。

48
デフォルトの名無しさん[sage]   投稿日:2015/11/29 17:29:39  ID:+8PPW4GA.net(5)
10件程度のソートならソーティングネットワークによるソーティングが一番速いから
十分少ない要素数に対してはそいつを呼び出して終わりだろ。

書いてないだけだろうけど。

49
デフォルトの名無しさん[]   投稿日:2015/11/29 20:46:37  ID:ILoya83o.net(5)
>9
俺の見解では、ツリートラバースに再帰を必要とするのはデータ構造に問題があると思うんだよな。
イテレータの実装を考えると再帰はちょっと無理があるんじゃないかと思う。
もちろん出来ないわけではないのだが。
ノードが子ノードを保持するような原始的なデータ構造は良くないのではないか。
コメント1件

50
デフォルトの名無しさん[]   投稿日:2015/11/29 20:56:36  ID:ILoya83o.net(5)
代表的なツリーの一つとしてHTMLがある。
HTMLのフラグメントを切り出し、別のノードの子として加えるような操作を考えるとき、
これはやはりループに軍配が上がると思う。
もちろん、ノードに子ノードを保持するような原始的なデータ構造ではかなりメンドクサイ。
というのもHTMLの一部を切り出す時、ノードの種類によって、ノードの分割や併合が起こる。
再帰と原始的なデータ構造では非常にめんどくさい。
私はこの用途のために直列化ツリー構造というデータ構造を考案した。
(おそらくすでに一般的に使われているとは思うのだが。)

51
デフォルトの名無しさん[sage]   投稿日:2015/11/29 21:13:17  ID:TqJ6Jff5.net
ループは再帰の特別なケースに過ぎない
ループの方が無駄がなく見える事もあるだろう
だが結局はその程度の話だ

52
デフォルトの名無しさん[sage]   投稿日:2015/11/29 21:25:34  ID:+8PPW4GA.net(5)
>49
> イテレータの実装を考えると再帰はちょっと無理があるんじゃないかと思う。
問題はデータ構造の方じゃなくて言語の方だと思う。
というのも、yieldを持つ言語なら再帰を使ったやり方が最も簡潔に書けるから。

-- language:lua
function traverse(node)
 if node then
  traverse(node.left)
  coroutine.yield(node.value)
  traverse(node.right)
 end
end

co = coroutine.create(traverse)
not_end, value = coroutine.resume(co, node)
コメント2件

53
デフォルトの名無しさん[]   投稿日:2015/11/29 21:52:31  ID:ILoya83o.net(5)
>52
ちょっとそのやり方で、HTMLの一部をコピペするコード書いてみて。
コメント3件

54
デフォルトの名無しさん[sage]   投稿日:2015/11/29 22:12:36  ID:+8PPW4GA.net(5)
>53
一部ってのはどういう風に探すのん?
特定の属性を持ってるタグを探す感じ?
コメント1件

55
デフォルトの名無しさん[sage]   投稿日:2015/11/29 22:23:46  ID:euqwPPlR.net(2)
どういう風に探すか後から指定できる感じで。

56
デフォルトの名無しさん[]   投稿日:2015/11/29 23:04:51  ID:ILoya83o.net(5)
>54
HTMLのコピペがいつ起こるかというと、ユーザーがその操作をした時なので、
そういう前提で設計してはどうでしょうか。

57
デフォルトの名無しさん[]   投稿日:2015/11/29 23:13:29  ID:ILoya83o.net(5)
HTMLをユーザーの直観に適合する形で操作するのは意外と難しいですよ。
HTMLフラグメントの移動なんてどうですかね。
面白い題材だと思うのですが。

58
デフォルトの名無しさん[sage]   投稿日:2015/11/29 23:27:31  ID:euqwPPlR.net(2)
直列化ツリー構造kwsk

59
デフォルトの名無しさん[sage]   投稿日:2015/11/30 00:13:02  ID:vNB8BIt6.net
>53
書いてはみたけどウェブプログラミング初心者でごめんよ
https://ideone.com/KO4rFy
コメント1件

60
デフォルトの名無しさん[sage]   投稿日:2015/11/30 11:10:04  ID:lmaKmArc.net(2)
>59

61
デフォルトの名無しさん[sage]   投稿日:2015/11/30 14:51:10  ID:+Ls/PK0X.net
>52>53を繰り返しで書ける人はいないみたいだね。

62
デフォルトの名無しさん[sage]   投稿日:2015/11/30 20:27:21  ID:lmaKmArc.net(2)
そういやC++のstd::mapのイテレータとかってどうなってんるのん?
コメント1件

63
デフォルトの名無しさん[sage]   投稿日:2015/11/30 21:11:57  ID:9VRs5I4S.net
>62
ノードオブジェクトに親を指すポインターもあって愚直に辿ってる。
赤黒木使ってるのが殆どだから、
レスしてる奴もコード読めない奴の方が多いんじゃないかw

64
デフォルトの名無しさん[sage]   投稿日:2015/12/01 00:02:40  ID:M545w8lo.net(4)
赤黒木って難しいよね、結構。

65
デフォルトの名無しさん[sage]   投稿日:2015/12/01 13:24:08  ID:wfTLHpyu.net(8)
データを吐き出す方法として前方イテレートしかしないの前提ならB+木がループでトラバース出来る上に高速なんだけど
挿入と削除を頻繁にするなら、そしてデータがキャッシュに乗り切らない程度に沢山あるなら赤黒木が高速になる
全部キャッシュに乗る程度の小さなデータ数ならAVL木が高速で
更に小さいならベクタ上にヒープ木でも作ればって話になる。
どの構造でも再帰で列挙出来るけど、ループでAVL木や赤黒木のデータを列挙するのは骨だな

66
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/01 15:00:00  ID:p3g6QuXB.net(2)
再帰・ループの相互変換が難しいとかさあ
アルゴリズムの根本的なところ理解してないだけ

恥ずかしすぎるこのスレ
コメント1件

67
デフォルトの名無しさん[sage]   投稿日:2015/12/01 16:04:55  ID:M545w8lo.net(4)
f(0,b)=b+1
f(a,0)=f(a-1,1)
f(a,b)=f(a-1,f(a,b-1))
コメント1件

68
デフォルトの名無しさん[sage]   投稿日:2015/12/01 16:39:12  ID:wfTLHpyu.net(8)
>66
>67をループに変換するのは難しくないんだね?
ちょっとやってみせてよ。
コメント1件

69
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/01 17:10:17  ID:p3g6QuXB.net(2)
rubyで書いてくれないとちょっと。
コメント2件

70
デフォルトの名無しさん[sage]   投稿日:2015/12/01 17:22:48  ID:wfTLHpyu.net(8)

71
デフォルトの名無しさん[sage]   投稿日:2015/12/01 17:26:42  ID:alJpKlDN.net
再帰・ループの相互変換が難しいとかさあ
アルゴリズムの根本的なところ理解してないだけ

無能の>68 は、勉強しろ。
コメント1件

72
デフォルトの名無しさん[sage]   投稿日:2015/12/01 17:26:51  ID:UT6gApH3.net(6)
uyって式も読めないのかな
コメント1件

73
◆tAo.kQ2STk [sage]   投稿日:2015/12/01 17:33:25  ID:wfTLHpyu.net(8)
>71
無能でーすチッスチッス
インターン先はGoogle(技術職8週間、コンパイラを改良するお仕事)でしたが何か?
今The Art of Computer Programmingの英語版の2巻読んでるんだけど
次に読むべき本は何?

>72
数式から雰囲気掴むことも出来ない重度のアスペだから仕方ない。
コメント1件

74
デフォルトの名無しさん[sage]   投稿日:2015/12/01 17:39:29  ID:UT6gApH3.net(6)
>73
uyの残した名言

何で出来ているか?というのは愚問過ぎる

例えばそれを「uy」としましょう
「uy」から派性したAやBといった概念から「uy」を辿る事は出来る

例えばこの世界にある「オブジェクト指向」という概念や「量子ビット」といった概念から
「uy」を辿る事が可能なので、
それらで世界が出来ているといった勘違いが可能なのです
でもそれは、一体いくつ「uy」から継承がネストしていて、プログラム等でいえばメソッドが追加されてしまった純粋性のない概念なのでしょうか?
それを知っているのは「uy」だけです

この世界にあるすべての概念は「uy」へと通じているので、
料理人は料理を通じて世界を知り、スポーツ選手はスポーツを通じて世界を知ります

誰も「uy」からは逃げられないんだよ
コメント1件

75
konisi ◆tAo.kQ2STk [sage]   投稿日:2015/12/01 17:44:25  ID:wfTLHpyu.net(8)
>74
酉とIDくらい見なさいな

# どうでもいいけど最近障害者3級取ったわ

76
◆tAo.kQ2STk [sage]   投稿日:2015/12/01 17:49:32  ID:wfTLHpyu.net(8)
あぁ、俺がuyと同一人物だと勘違いされたのではなく、
uyって人がそういう名言を残したって話か
ごめんごめん

77
デフォルトの名無しさん[sage]   投稿日:2015/12/01 18:38:14  ID:UT6gApH3.net(6)
誰も uy なんかに価値を求めてないのにね

78
デフォルトの名無しさん[sage]   投稿日:2015/12/01 18:56:25  ID:wfTLHpyu.net(8)
でかでかと引用した奴が言うと説得力があるね。

79
デフォルトの名無しさん[sage]   投稿日:2015/12/01 19:16:25  ID:UT6gApH3.net(6)
んでuyちゃんのループ問題はまだ解決しないのかしら

80
デフォルトの名無しさん[sage]   投稿日:2015/12/01 19:43:22  ID:M545w8lo.net(4)
まさにuyがアルゴリズムの根本的なところを理解しているかどうか問われているなw

81
デフォルトの名無しさん[sage]   投稿日:2015/12/01 19:54:09  ID:UT6gApH3.net(6)
それな、今までC++スレ読んでてこいつ頭おかしいなとは思ってたけど実力が問われるよな

82
デフォルトの名無しさん[sage]   投稿日:2015/12/01 19:58:37  ID:wfTLHpyu.net(8)
はてさてuyの実力は如何。

# 俺自身の実力はさておき。

83
デフォルトの名無しさん[sage]   投稿日:2015/12/01 20:19:08  ID:UT6gApH3.net(6)
おせぇな uy

84
デフォルトの名無しさん[sage]   投稿日:2015/12/01 20:49:22  ID:M545w8lo.net(4)
uy自力で頑張ってんのか?
なかなか根性あるじゃないか。
俺ならググって解答見てしまうがw

85
◆tAo.kQ2STk [sage]   投稿日:2015/12/02 00:55:46  ID:SG5bn8pD.net(4)
再帰で書かれた超有名な関数をループにするだけの簡単なお仕事なのに
何ですぐに出来ないんだろうね?

# 全然簡単じゃないからです
コメント1件

86
デフォルトの名無しさん[sage]   投稿日:2015/12/02 02:08:55  ID:sE+ivAhG.net(2)
末尾再帰に書き換えてから蓄積引数を中に押し込んでループにするんだよ。
やり方を書いたのだからきっとuyにもできるはず!

87
デフォルトの名無しさん[sage]   投稿日:2015/12/02 06:47:05  ID:UkYZlpUx.net(6)
>85
普通に悩んだけど再帰なら一瞬でとけんのに
ループじゃまず何のデータ構造を使っていいかわからん。

88
デフォルトの名無しさん[sage]   投稿日:2015/12/02 08:22:03  ID:73uUfhWJ.net(3)
スタックだろ。
再帰とループ+スタックは等価。
理屈ではそうだが実際やるのは結構難しいんじゃね。

89
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/02 08:50:25  ID:znqtbEKc.net(2)
>70
http://ideone.com/KDSDTc

「この程度」が難しいとか言われても
は? としか思えない

再帰というのは単なるスタック付きのループであって
君たちがどこら辺で躓いているのか理解できないんです
やっぱわからない所がわからない状態なんだろうけど、

つうかSTACKUって知っていますか?
コメント2件

90
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/02 09:14:47  ID:znqtbEKc.net(2)
ちなみにここ一週間のuyの生活は、朝起きて、ネトゲして朝寝る です。

ちょうどいま、起きたところではなく24時間起き続けていたので今から寝る前でした

とあるゲームであと100戦程の対戦をこなし、誰よりも速く称号を獲得しようとしてる最中です
2chのム板なんて頻繁に開いてる暇とかないし結構忙しいんですわ
コメント1件

91
デフォルトの名無しさん[sage]   投稿日:2015/12/02 09:18:01  ID:UkYZlpUx.net(6)
>89
お見事です。申し訳ありませんでした。

92
デフォルトの名無しさん[sage]   投稿日:2015/12/02 09:19:02  ID:UkYZlpUx.net(6)
自分には分からなかったわ

じゃあ質問なんだけど、再帰は全てスタック+ループで書き換えられるの?
コメント3件

93
デフォルトの名無しさん[sage]   投稿日:2015/12/02 09:34:55  ID:UkYZlpUx.net(6)
連投だけど分かったかも、
再帰で帰ってくるべき値をスタックしておくってことでループ+スタック=再帰なのね

94
◆tAo.kQ2STk [sage]   投稿日:2015/12/02 09:39:29  ID:SG5bn8pD.net(4)
>89
問題のすり替えはいけないな。
俺は「難しくないならやってみて?」って言っただけで
そもそも「再帰のほうがループより圧倒的に簡潔に書けるよね?」って文脈だろ。
君が「難しいから出来るもんならやってみろ」って捉えたかどうかなんざ知らんがおつかれさん
うんうん、言いたいことは分かった。
それで、そのコードのどこら辺が綺麗なの?

ちなみに機械的に変換したのがこちら(rubyじゃなくてごめんよ)
https://ideone.com/XsZh4c
fとhは機械的に変換したという意味では等価だし君のコードとほぼ同じ事をしてるのだけど、
h関数をパッと見て>69式と等しいって言うのは凄く度胸が居るよね?

>92
そもそも再帰をどうやってソフトウェア実装してるかというとコールスタック+ジャンプ≒スタック+ループな訳で

# ちなみにスタックの正しいスペルはstack。stackuなんて子は知りませんね。

95
◆tAo.kQ2STk [sage]   投稿日:2015/12/02 09:48:27  ID:SG5bn8pD.net(4)
s/69/67/

96
デフォルトの名無しさん[sage]   投稿日:2015/12/02 10:13:14  ID:amR8vvu9.net
>92
数学的に証明されてる。
コメント1件

97
デフォルトの名無しさん[sage]   投稿日:2015/12/02 10:15:05  ID:UkYZlpUx.net(6)
>96
そうなのか、、、
ならできるようにならなきゃだな
コメント1件

98
デフォルトの名無しさん[sage]   投稿日:2015/12/02 11:13:43  ID:sE+ivAhG.net(2)
>92
再帰は機械的にCPSに書き換えることで末尾再帰にできて
そうしたらそれをループに書き換えられる
両方証明されてる

99
◆tAo.kQ2STk [sage]   投稿日:2015/12/02 11:28:01  ID:SG5bn8pD.net(4)
>97
アセンブリ言語によくあるcall系命令の挙動を正確に言えるようになれば
どんな再帰もスタックとループで書けるようになるよ
何しろスタックとループで再帰を表現してるのがcall系命令だからね。

それをそのまま書くとこんな具合に超汚くなるけど。
https://ideone.com/0QXd8O

100
デフォルトの名無しさん[sage]   投稿日:2015/12/02 12:52:27  ID:UkYZlpUx.net(6)
ありがとうございます

101
デフォルトの名無しさん[sage]   投稿日:2015/12/02 18:34:40  ID:73uUfhWJ.net(3)
uyなかなかやるな。
ググって解答見た可能性もあるが、ググれるのも実力のうちだからな。

102
.パンティーガァル[sage]   投稿日:2015/12/02 20:57:19  ID:V8iEgN6C.net
>90
> ちなみにここ一週間のuyの生活は、朝起きて、ネトゲして朝寝る です。
悲観することはない(してないかもしれないがw)
それも一つの生き方だ
人間の人生などそんなものだ

103
デフォルトの名無しさん[sage]   投稿日:2015/12/02 22:54:08  ID:73uUfhWJ.net(3)
https://ideone.com/upRuBk
アッカーマン関数の展開の様子を書いてみた。
メモリリークあるけど気にしない。
もっとスマートにかけそうな気もするが言語が悪いのかな?
コメント2件

104
デフォルトの名無しさん[sage]   投稿日:2015/12/03 13:20:12  ID:lU1L6vf0.net
誰かループ版と再帰版でベンチマークしてみなよ
コメント1件

105
◆tAo.kQ2STk [sage]   投稿日:2015/12/03 13:56:10  ID:cYXsvyZR.net(3)
>103
俺も書いてみたけど
確かにどう書いてももうちょっとスマートに書ける気がする。
https://ideone.com/BFP2wh
コメント1件

106
デフォルトの名無しさん[sage]   投稿日:2015/12/03 17:06:18  ID:Sp77D/ez.net(5)
>105
メンドクサイやつだなお前w
コメント1件

107
デフォルトの名無しさん[sage]   投稿日:2015/12/03 17:30:30  ID:Sp77D/ez.net(5)
>104
ack(3,10)を100回計算させたところ

ループ 3.99秒
再帰 4.50秒

だった。微妙にループが速い。
言語はg++ 最適化あり

108
◆tAo.kQ2STk [sage]   投稿日:2015/12/03 17:54:16  ID:cYXsvyZR.net(3)
>106
でも115行目以降は>103に比べてスマートじゃない?
アッカーマン関数をより素直に表現している(ように見える)というか。

テンプレートその他がひじょーに面倒臭い事になってるのは認めるよww
コメント1件

109
デフォルトの名無しさん[sage]   投稿日:2015/12/03 18:28:15  ID:Sp77D/ez.net(5)
>108
まあそうかも。
言語によってはめちゃくちゃ簡潔に書けたりするのかな、気になる。
コメント1件

110
◆tAo.kQ2STk [sage]   投稿日:2015/12/03 19:58:47  ID:cYXsvyZR.net(3)
>109
ちなみに扱ってるのがアッカーマン関数だけだということとか考慮しつつ短く書くとこうなる。
https://ideone.com/ILFKf2
コメント1件

111
デフォルトの名無しさん[sage]   投稿日:2015/12/03 20:19:17  ID:Sp77D/ez.net(5)
>110
だいぶスッキリした。
でも入れ子構造がなくなっちゃってるのはちょっと寂しいかな。

112
デフォルトの名無しさん[sage]   投稿日:2015/12/03 22:49:14  ID:Sp77D/ez.net(5)
https://ideone.com/hlWWly
んんん、haskell 気持ちいい!

113
デフォルトの名無しさん[sage]   投稿日:2015/12/04 18:59:19  ID:abMxFNxB.net
きっしょ

114
デフォルトの名無しさん[sage]   投稿日:2015/12/04 20:33:45  ID:tAWNVevx.net
んぎもちいいいいいいいいいい

115
デフォルトの名無しさん[sage]   投稿日:2015/12/05 12:06:08  ID:kPO9yvRD.net
気持ち悪い生き物だなこいつは

116
デフォルトの名無しさん[]   投稿日:2015/12/05 12:08:54  ID:75VGJDuj.net
再起関数難しくて苦手だわ

117
デフォルトの名無しさん[]   投稿日:2015/12/05 12:38:44  ID:vOhmiziG.net
おいらも苦手だわ

118
デフォルトの名無しさん[sage]   投稿日:2015/12/05 12:50:09  ID:fWHJ2v3J.net(2)
アッカーマンを知ったばかりで嬉しくてしょうがないんだろうな
俺くらいになるとどうでもよくなるけど
コメント1件

119
デフォルトの名無しさん[sage]   投稿日:2015/12/05 14:22:16  ID:3X0n/q/1.net
さぁ次は竹内関数(たらい回し関数)だ!

120
デフォルトの名無しさん[sage]   投稿日:2015/12/05 14:24:24  ID:FIUesRuL.net
>118
アッカーマン関数が原始帰納関数でない証明を頼む。
定義がシンプルかつ一般帰納関数になるように
アッカーマンさんが構成したらしいが。

121
デフォルトの名無しさん[sage]   投稿日:2015/12/05 16:27:08  ID:fWHJ2v3J.net(2)
その問題が解けて嬉しかったんだろうな

122
デフォルトの名無しさん[sage]   投稿日:2015/12/05 22:53:23  ID:Ij5oOkBB.net
たらいのループ化と展開の様子誰か頼む

123
デフォルトの名無しさん[sage]   投稿日:2015/12/07 01:05:16  ID:OW/BWl2V.net
なんで自分でやらない?

再帰関数が好きなんだろ?

124
ネトuy ◆Qawu9.2l1E [sage]   投稿日:2015/12/07 02:12:06  ID:IGEuV37f.net

125
デフォルトの名無しさん[sage]   投稿日:2015/12/07 19:27:26  ID:NCOmGjcr.net
https://ideone.com/63bZSE

たらいの展開の様子

haskell気持ちEー!

ループ化は誰か頼むわ

126
デフォルトの名無しさん[sage]   投稿日:2015/12/08 10:04:03  ID:HiEYAt85.net
きも

127
デフォルトの名無しさん[sage]   投稿日:2015/12/10 22:01:50  ID:ZuWvmJPo.net(2)
たらいのループ化どうやるかわからん。

128
デフォルトの名無しさん[sage]   投稿日:2015/12/10 23:27:19  ID:ZuWvmJPo.net(2)
んーなんかプログラムカウンタに相当するものをスタックに積まなきゃいけない感じ?

129
デフォルトの名無しさん[sage]   投稿日:2015/12/11 02:06:03  ID:6gh0GR4/.net(2)
https://ideone.com/rO18tw
んーできたっぽい?
コンパイラの吐いたアセンブラとか見ながら書いたからチートしてるけど。

130
デフォルトの名無しさん[sage]   投稿日:2015/12/11 13:42:03  ID:Z+QL5bbx.net
再帰厨はcall命令とjmp命令の違いが分かってから布教してほしい
コメント1件

131
デフォルトの名無しさん[sage]   投稿日:2015/12/11 18:14:40  ID:H0NYZxX+.net
健全でない言葉が含まれているため表示しません 内容を確認する

132
デフォルトの名無しさん[sage]   投稿日:2015/12/11 18:27:07  ID:FXKTAEC3.net
健全でない言葉が含まれているため表示しません 内容を確認する

133
デフォルトの名無しさん[sage]   投稿日:2015/12/11 19:01:03  ID:DIOiIqvd.net(2)
callとjumpの中間の命令もあるよな。
call使わない奴はいないのか?

134
デフォルトの名無しさん[sage]   投稿日:2015/12/11 19:02:56  ID:6gh0GR4/.net(2)
中間の命令ってなんだよ?
コメント1件

135
デフォルトの名無しさん[sage]   投稿日:2015/12/11 19:40:32  ID:DIOiIqvd.net(2)
>134
MIPSのjalとjrとか。
callとretに相当。
jal相当すらなくてpcのレジスタ保存命令しかないのもあった。

136
デフォルトの名無しさん[sage]   投稿日:2015/12/13 22:44:03  ID:1ET048aA.net
ツリーのイテレータってどう書くの
誰か頼む
コメント1件

137
uy ◆Qawu9.2l1E []   投稿日:2015/12/14 05:58:59  ID:0uboKikK.net
まずはこの手のアルゴリズム抽象化でC++使うのをやめろ
効率悪すぎ

138
uy ◆Qawu9.2l1E []   投稿日:2015/12/14 06:02:04  ID:WJU5GahL.net
ツリーのイテレータっつうか
ゲームプログラミング的にいえばツリー構造のタスクシステム
ゲームプログラミングしてれば普通に書いてるような低レベルの話

139
◆tAo.kQ2STk [sage]   投稿日:2015/12/14 11:28:00  ID:v4oN6dOD.net
>136
ツリーのイテレータの書き方は大きく分けて3種類ある。
一つ目はイテレータ自身に「どのノードを辿ってきたか」って情報を覚えさせておいてそれを用いる方法
イテレータの空間効率がO(log n)になる代わりにサクセッサの時間効率が平均でO(1)になる。
二つ目はイテレータ自身にキーを覚えさせておいて、一旦そのキーを手繰ってから次のノードを手繰り直す方法
イテレータの空間効率がO(1)になる代わりにサクセッサの時間効率がO(log n)になる。
三つ目は木構造の各葉っぱに次の葉っぱへのポインタを書いておく方法
イテレータの空間効率がO(1)、サクセッサの時間効率がO(1)になる代わりに葉要素のサイズがO(1)増える。

140
名無しさん@そうだ選挙に行こう[sage]   投稿日:2015/12/14 11:57:14  ID:S7hw1GZs.net(4)
イテレータってそんなにたくさん使うもんじゃないし、一つ目がいいかな、俺的に。

141
uy ◆Qawu9.2l1E []   投稿日:2015/12/14 15:02:59  ID:WIf5dtaV.net(2)
それ種類じゃなくて、全部組み合わせて実装したほうが汎用的じゃねーの

class A
  attr_accessor :up , :key , :list , :data
end

最低でも1と3のup listは無ければ木構造にならないだろ
君の考えは prev(up) と next(list) になってる
コメント1件

142
名無しさん@そうだ選挙に行こう[sage]   投稿日:2015/12/14 16:34:38  ID:S7hw1GZs.net(4)
全部組み合わせたほうが汎用的?
何を言ってるかよくわからん

143
uy ◆Qawu9.2l1E []   投稿日:2015/12/14 21:12:22  ID:WIf5dtaV.net(2)
まず、ツリーにしたらそれはイテレータとは呼ばないから
ただのツリーを走査する為の関数に過ぎない

「イテレータ」にしか使用できないツリーじゃなくて
一通りの事に使用できるツリークラス作れば?って話

144
デフォルトの名無しさん[sage]   投稿日:2015/12/14 21:30:28  ID:lwFUcSQC.net
function NodeIterator(node, childNodesName) {
  this._stack = [node];
  this._name = childNodesName;
}
NodeIterator.prototype.hasNext = function() {
  return this._stack.length > 0;
}
NodeIterator.prototype.next = function() {
  var node = this._stack.pop();
  if (node) {
    for (var i = node[this._name].length -1; i > -1; --i) {
      this._stack.push(node[this._name][i]);
    }
  }
  return node;
}

ノードの親や深さも欲しい時は、スタックに積むノードをオブジェクトでラップして親の参照や深さを持たせればいいかも

145
デフォルトの名無しさん[sage]   投稿日:2015/12/14 22:23:44  ID:S7hw1GZs.net(4)
uyのイテレータの定義がさっぱりわからん。
俺はC++STLのイテレータを想像しているんだが。
uyの言ってるイテレータはなんのイテレータなんだ?


146
デフォルトの名無しさん[sage]   投稿日:2015/12/14 23:47:42  ID:S7hw1GZs.net(4)
uyが言ってるのはツリーで実装されたイテレータということかな?
俺が言いたいのはツリーを巡回するイテレータなんだが?

147
デフォルトの名無しさん[sage]   投稿日:2015/12/15 02:12:24  ID:1v1TladX.net(2)
コレクションを操作するのがイタレータ
コメント1件

148
uy ◆Qawu9.2l1E []   投稿日:2015/12/15 02:28:13  ID:hKbS74r3.net
センスないと無理

149
デフォルトの名無しさん[sage]   投稿日:2015/12/15 02:42:41  ID:1v1TladX.net(2)
>147
それを言うなら走査だろと自分で突っ込んどく

150
uy ◆Qawu9.2l1E []   投稿日:2015/12/15 02:44:41  ID:xpC/Gts5.net
例えば
[1,2,3,4] ← これをイテレートするのがイテレータだろ?

ツリーは
[1,2,[3,4,[5,6]]] ← これをイテレートしたいのが作りたいイテレータだろ?


下のはイテレータと表現するまでもなくプログラム中でツリー構造が必要になって、
「ツリークラス」ってのを定義した事あれば、そんなのは標準実装しているレベルのものだから、わざわざツリーのイテレータなんていう半端なものは誰も作らない

作る順序的にまずはイテレータのツリー化じゃなくて、ツリークラスの定義
考えが追いつかないなら好きな順序で作れば良いけど
コメント1件

151
デフォルトの名無しさん[]   投稿日:2015/12/15 07:32:58  ID:1zInVUKk.net
ツリーオブジェクトにtoArray()メソッドを用意すれば
すべて解決すると思うの。

152
デフォルトの名無しさん[sage]   投稿日:2015/12/15 10:44:59  ID:kfL23r5/.net(4)
大富豪プログラミングだなtoArray()
ツリーなんかはサイズが非常にデカくなることがしばしばあるぞ。

153
デフォルトの名無しさん[sage]   投稿日:2015/12/15 18:13:10  ID:kfL23r5/.net(4)
tAo.kQ2STk ってテレンスタオから取ってんの?
コメント1件

154
デフォルトの名無しさん[sage]   投稿日:2015/12/15 18:56:51  ID:kfL23r5/.net(4)
>150
汎用的なツリークラス作れって言ってんのか?
javascriptみたいになるんじゃね?

155
◆tAo.kQ2STk [sage]   投稿日:2015/12/15 19:28:58  ID:1tm7yObV.net
>153
違うよ。人間が読める某文字列をキーにしたらその酉が作れる。

ところでさ、どうでも良いんだけど
今話題にしてるのは木構造
>141が示したデータ構造は無向グラフ
・・・・・・だよね?

156
デフォルトの名無しさん[]   投稿日:2015/12/15 22:38:36  ID:WpFCIHcQ.net
ツリーじゃね

157
デフォルトの名無しさん[sage]   投稿日:2015/12/15 22:42:50  ID:kfL23r5/.net(4)
参照が木構造になってるかグラフになってるかなんて実行時に決まることじゃないのか?

158
デフォルトの名無しさん[]   投稿日:2015/12/16 03:41:52  ID:L2apS2Qu.net
何だこの池沼w

159
デフォルトの名無しさん[]   投稿日:2015/12/16 09:38:17  ID:VSvjkteq.net
ごめん

160
デフォルトの名無しさん[sage]   投稿日:2015/12/16 21:37:56  ID:OpCUYLL/.net
いいってことよ

161
デフォルトの名無しさん[]   投稿日:2015/12/17 17:19:47  ID:Szn4FINI.net

162
デフォルトの名無しさん[]   投稿日:2015/12/18 23:27:00  ID:95zCi6v5.net

163
デフォルトの名無しさん[]   投稿日:2015/12/19 15:12:57  ID:iG82T79N.net

164
デフォルトの名無しさん[sage]   投稿日:2015/12/19 16:17:36  ID:qhiLE2sk.net
制御では、実行時間が読めないアルゴリズムは使いにくい。

165
デフォルトの名無しさん[sage]   投稿日:2015/12/19 16:48:17  ID:mZAnd63z.net
再帰と繰り返しは相互に変換可能なんだから、再帰で実行時間が読めないならば、繰り返しでも読めない。
こんなじょうしきも知らないの?

166
デフォルトの名無しさん[]   投稿日:2015/12/19 20:02:11  ID:owy4KRbC.net
ごめん

167
デフォルトの名無しさん[sage]   投稿日:2015/12/19 20:16:05  ID:hx9j/3Ds.net
再帰はシステムダウンの危険がある。
処理速度もはるかに遅くなる。

再帰の場合には、こうした実行時間が読めない特有の問題点がある。

168
デフォルトの名無しさん[sage]   投稿日:2015/12/19 22:02:48  ID:EjHtX5K0.net(2)
> 再帰はシステムダウンの危険がある。
そう言う環境ならば、システムダウンの可能性は繰り返しでもある。

> 処理速度もはるかに遅くなる。
ヘボが作った繰り返しは再帰よりはるかに遅い。
コメント1件

169
デフォルトの名無しさん[sage]   投稿日:2015/12/19 22:20:57  ID:ZeO9ImyW.net
>168
繰り返しと再帰はいっしょなんだろ?
コメント1件

170
デフォルトの名無しさん[sage]   投稿日:2015/12/19 22:22:37  ID:EjHtX5K0.net(2)
>169
お前、バカなんだろ。

171
デフォルトの名無しさん[sage]   投稿日:2015/12/19 23:26:42  ID:25MZJC6Y.net
末尾再帰に対応した言語が少ないからなぁ

172
デフォルトの名無しさん[sage]   投稿日:2015/12/19 23:29:13  ID:srVmyYNw.net
普通の言語は対応してる
変な言語は使うもんじゃない
コメント1件

173
uy ◆Qawu9.2l1E []   投稿日:2015/12/20 01:30:16  ID:cCXQYS6+.net
# 1
def f
 if 条件
  処理
 else
  f()
 end
end

# 2
def f
 if 条件
  f()
 end
end


# 3
def f
 case 条件
 when LABEL
  f()
 end
end


末尾再帰されるパターンわからない奴wwwwwwwwwwwwっうぃる? 

174
デフォルトの名無しさん[sage]   投稿日:2015/12/20 01:48:28  ID:XCzWC+ME.net
>172
Java「…」

175
デフォルトの名無しさん[]   投稿日:2015/12/20 12:14:12  ID:8RLYRFXT.net(2)
>175
漸化式

176
デフォルトの名無しさん[sage]   投稿日:2015/12/20 12:15:13  ID:37nsyMmy.net(3)
それは、無限再帰

177
デフォルトの名無しさん[sage]   投稿日:2015/12/20 14:49:43  ID:zNzoBoA2.net(2)
健全でない言葉が含まれているため表示しません 内容を確認する

178
デフォルトの名無しさん[sage]   投稿日:2015/12/20 17:18:50  ID:37nsyMmy.net(3)
繰り返しの唯一の利点は回数の制御が再帰よりも容易であること。
これ以外の利点はない。

バカにはそれが理解できないらしいが。

179
デフォルトの名無しさん[sage]   投稿日:2015/12/20 17:26:49  ID:8RLYRFXT.net(2)
馬鹿には出来ませんね

180
デフォルトの名無しさん[]   投稿日:2015/12/20 18:23:24  ID:/qKlyz5E.net
ごめん


181
デフォルトの名無しさん[sage]   投稿日:2015/12/20 19:26:33  ID:37nsyMmy.net(3)
再帰はID:zNzoBoA2のように低知能には理解不能という弱点があるけど
ID:zNzoBoA2のような低知能の出現率は低いので全然問題無い
むしろ低知能者を検出試験としてのメリットの方が大きい

182
デフォルトの名無しさん[]   投稿日:2015/12/20 22:01:31  ID:ywvYIxL3.net
再帰苦手だから何でもかんでもループ使ってすまん

183
デフォルトの名無しさん[sage]   投稿日:2015/12/20 22:05:01  ID:A/4Tj+iv.net
flattenとか難しいよね

184
デフォルトの名無しさん[sage]   投稿日:2015/12/20 22:51:10  ID:zNzoBoA2.net(2)
もし再帰が理解出来たつもりなら、ちゃんとループに直せるぐらいのプログラミング技術は備えなくちゃ。

最低でもそれくらいの技術や知能が無ければ
再帰を楽しむことはできないよ。

185
デフォルトの名無しさん[sage]   投稿日:2015/12/21 02:17:48  ID:EKnooMo4.net(2)
「再帰には深刻なデメリットがある」キリッ
なんて発言する低知能人は再帰を理解してるはずが無い、理解不能なものを怖れている。未開人と同じ。

186
デフォルトの名無しさん[sage]   投稿日:2015/12/21 09:54:25  ID:S8kWm1db.net
ループを恐れるのは、ループにするだけの知識・経験を欠いているから。

その程度じゃあプログラミングの世界からすぐに消えるだけの存在。
再帰厨は、現実で満たされないのでスレで妄想を垂れ流すことしかできないクズ。
コメント1件

187
デフォルトの名無しさん[sage]   投稿日:2015/12/21 10:52:48  ID:zel3cCjW.net
関数内にjmpも好き勝手にやるタイプだからどうとも言わんけど、
再帰否定派はまさか単一のアーキテクチャの話してないよな?
アルゴリズムとして再帰がイケてないって話だよな?

188
デフォルトの名無しさん[]   投稿日:2015/12/21 14:23:04  ID:MyhUNItP.net
そうなのか?

189
デフォルトの名無しさん[]   投稿日:2015/12/21 14:51:29  ID:EKnooMo4.net(2)
>186
必死で再帰を否定しているバカを弄っているだけで、繰り返しを否定しているわけでは無い

やっぱり低知能なんだな。

190
デフォルトの名無しさん[]   投稿日:2015/12/21 18:43:17  ID:u4st+H+L.net
みなさん、これが「弄ってるって言いたいバカ」ですw

191
デフォルトの名無しさん[]   投稿日:2015/12/22 08:48:59  ID:kujr6tD9.net(2)
迷信を信じ込んで再帰を否定してるバカが
深刻なデメリット(爆笑)、例えば
> 処理速度もはるかに遅くなる。
を、実証すればスレ終了するのに。
コメント1件

192
デフォルトの名無しさん[sage]   投稿日:2015/12/22 11:16:51  ID:4uBr+2Cy.net
>191
そういう超基本的なプログラミング知識が無いのに
なんでプログラム板にいるの?

そもそもプログラミング経験無いだろ、お前。
コメント1件

193
◆tAo.kQ2STk [sage]   投稿日:2015/12/22 12:54:32  ID:S5fGjlFA.net
異様に伸びてると思ったら深刻な問題祭りかい

いくらでも例外は挙げられるけど
再帰で書こうがループで書こうが計算時間や空間計算量はそんなに変わらんから
書きやすく、読みやすい方で書いたほうが良いんじゃない?

そんなに変わらないって言うのは十分大きな入力に対して精々2〜3倍以下に納まるって意味だからね。
1時間掛かる処理を20マイクロ秒速くする為にごちゃごちゃ書き換えるのは結構な事だけど。
コメント1件

194
デフォルトの名無しさん[sage]   投稿日:2015/12/22 14:08:14  ID:dkSLpih8.net
はるかと言っても所詮定数倍でしょ。
しかも一桁違うケースは
関数呼び出しがやや高価なスクリプト系の言語でもほとんどないでしょ。

195
デフォルトの名無しさん[sage]   投稿日:2015/12/22 17:31:14  ID:qPz15M1W.net
>193
いやね,絶対的に再帰でないと書けない,いや非常に書きにくいものはあるのは確かで.
たとえば代数式の解析を非再帰的で記述しろといわれると「はたして出来るのか??」と逡巡してしまう.
こういう話題があまり発展しないのはどうしたわけですかね

関係ないけどquick-sort を三項演算子とコンマ演算子で書く話題,誰か‥私は挫折した‥

196
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/22 18:25:40  ID:/7VurpfC.net
再帰の深刻なデメリットと言えば、コンパイラ設計者が甘えてる事によってバグを触ったり
異常に速度遅くなるパターンが放置されてたりする事

なんの言語とは言わないけど

197
デフォルトの名無しさん[sage]   投稿日:2015/12/22 19:03:19  ID:8Du/ashj.net(2)
それは再帰のデメリットではなくそういうクソコンパイラしかない言語のデメリット
コメント2件

198
デフォルトの名無しさん[]   投稿日:2015/12/22 22:57:38  ID:kujr6tD9.net(2)
>192
能書きはいいからとっとと実証しろ。超基本的な知識なんだろ。

「はるかに遅い」とか言ってるバカ仲間のサイトでも良いぞ。
コメント1件

199
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/22 23:43:59  ID:qcwFiUkP.net
>197
なんか食パン裏返してこっちが表だとか必死に言ってるようなレスだな
コメント1件

200
デフォルトの名無しさん[sage]   投稿日:2015/12/22 23:48:59  ID:8Du/ashj.net(2)
>199
食パン裏返してんのはお前のほうだよw

201
デフォルトの名無しさん[]   投稿日:2015/12/22 23:51:52  ID:2TsBrERG.net
>198
へい。再帰が130倍時間がかかるエビデンス。
http://www.fastpic.jp/images.php?file=1406113032.png
コメント12件

202
デフォルトの名無しさん[sage]   投稿日:2015/12/23 01:07:26  ID:xKy7nhKt.net(2)
食パンの裏はどっち側だよ

203
デフォルトの名無しさん[]   投稿日:2015/12/23 01:25:49  ID:zjRNfIWb.net(3)
>201
こうするとなかなか興味深いことになるね。
本当に興味深いと思ってるだけで他意は無いよ。

fun_rec(){
if [ $1 -gt 5000 ] ; then
time fun_for
return
fi
fun_rec $(( $1 + 1 ))
}
コメント1件

204
デフォルトの名無しさん[]   投稿日:2015/12/23 02:04:18  ID:3NYqkGXc.net
>203
たしかにおもしろい。
再帰の深さに比例して時間がかかる。
再帰が深くなると処理に時間がかかるようになるのか、
別の時間を測ってしまっているのか。わからん。これはわからん。
コメント1件

205
デフォルトの名無しさん[]   投稿日:2015/12/23 07:21:41  ID:fM9ORKUP.net(9)
>201
必死で再帰否定してるバカは知能が低いというエビデンス乙

シェル関数は呼び出しのたびに名前解決するのでペナルティが大きい
コメント3件

206
デフォルトの名無しさん[]   投稿日:2015/12/23 07:28:38  ID:fM9ORKUP.net(9)
Cの場合は入った時にフレーム作成と出る時にフレーム復元
c86なら、レジスタ操作4ステップ(複合命令なら2ステップ)だ。
名前解決なんかリンク時に終わってる。

207
デフォルトの名無しさん[sage]   投稿日:2015/12/23 08:47:35  ID:2F8TsTF+.net(3)
最近の関数呼び出しは引数をスタックに積まずにレジスタ渡しみたいだから
再帰で何段ネストしちゃっててもレジスタに収まってる限りは爆速なんじゃね
コメント1件

208
デフォルトの名無しさん[sage]   投稿日:2015/12/23 08:59:40  ID:r+tlUph/.net(4)
名前解決まで計算時間に含めるなら
もう再帰云々じゃなくて長大な再帰なしの一つの関数で全部こなせって話になるんだがな

>207
いや、そうはならない。
レジスタの退避が必要になるから、自己再帰するならどっちにしても同じだけpush/popは必要になる。
最適化が掛かったらその限りじゃないけど。

209
デフォルトの名無しさん[sage]   投稿日:2015/12/23 09:02:09  ID:QhR+qVh6.net(3)
>205
呼び出しだけじゃなく参照もね、iの。
localでもスタックフレームなめてるのかな?
コメント1件

210
デフォルトの名無しさん[sage]   投稿日:2015/12/23 09:10:56  ID:2F8TsTF+.net(3)
>レジスタの退避が必要になるから

そうかなー
コメント1件

211
デフォルトの名無しさん[]   投稿日:2015/12/23 09:15:53  ID:fM9ORKUP.net(9)
>209
スタッフフレームは再帰に必要なステップだから、再帰のペナルティとしてあえて受け入れた。

シェルスクリプトを持ち出した時点で「スタックは容量制限が厳しい(場合もある)リソース」
を自分で否定しちゃうところが再帰否定してるバカが低知能であるもう一つのエビデンス(笑)

(場合もある)を知らないのか、教わってないのか知らないが、全ての場合だと思い込んでるところもバカの、特徴だね。

212
デフォルトの名無しさん[sage]   投稿日:2015/12/23 09:50:24  ID:r+tlUph/.net(4)
>210
再帰で書いた何の変哲もないフィボナッチ関数をビルドしたケースを示すよ
https://gist.github.com/pixie-grasper/ba2d0ade523b8599c182
gccではr12を、clangではraxを、rbp/rbxの他に退避してるのが分かる。

213
デフォルトの名無しさん[sage]   投稿日:2015/12/23 11:20:43  ID:2F8TsTF+.net(3)
対比先もレジスタにすればいいのにね

214
デフォルトの名無しさん[sage]   投稿日:2015/12/23 11:25:42  ID:r+tlUph/.net(4)
そんな事をすると
既に退避させてある値を別なレジスタに退避させてから、退避させたい値を退避するコードを吐く羽目になるけど
レジスタが最低でも加算無限個無いと出来ないからね。仕方ないね。

215
デフォルトの名無しさん[sage]   投稿日:2015/12/23 11:53:11  ID:/Snk+v/P.net
externしていないstatic関数とかならレジスタ渡しもふつうにある。
もちろんCランタイム・コンパイラによる
コメント1件

216
デフォルトの名無しさん[sage]   投稿日:2015/12/23 12:07:45  ID:r+tlUph/.net(4)
>215
いつの時代の話をしてるのか分からんのだけど、所謂Intel系の64bit環境(amd64)だとレジスタ渡しがデフォルトだよ。
https://en.wikipedia.org/wiki/X86_calling_conventions#List_of_x86_calling_conventions

217
デフォルトの名無しさん[]   投稿日:2015/12/23 12:46:44  ID:2bKYe5U2.net(4)
>204
bashはダイナミックスコープだから再帰の深いところでは
変数の参照に時間がかかるのかな。いまはその辺を疑ってる。

218
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/23 13:07:16  ID:cGrC7qed.net
>197

219
デフォルトの名無しさん[sage]   投稿日:2015/12/23 16:35:42  ID:u0B3Sjd8.net
だいたい再帰で問題が無いなんて
クイックソートで再帰が役に立たない事すら知らないってことか?

処理件数が増えたら速度の差なんて、何万倍どころじゃないし。
コメント7件

220
デフォルトの名無しさん[sage]   投稿日:2015/12/23 16:37:36  ID:xKy7nhKt.net(2)
>219
何が言いたいのかわからん…

221
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/23 16:45:18  ID:uhnrlQdn.net
>219
ファーwwwwwwwwwwwwwwwwwwwwwwwwwww

222
デフォルトの名無しさん[]   投稿日:2015/12/23 17:05:56  ID:fM9ORKUP.net(9)
>219
じゃ、これを10000倍高速化して実証してよ。
http://svnweb.freebsd.org/base/stable/10/lib/libc/stdlib/qsort.c?revisi...;view=markup
コメント3件

223
デフォルトの名無しさん[]   投稿日:2015/12/23 17:15:03  ID:2bKYe5U2.net(4)
>222
きったねえソースだな。どこの糞コード持ってきてんだ。
見せてやるよ、本気のクイックソートってやつをな。

void qsort(int a[], int left, int right)
{
 int i, last;

 if (left >= right)
  return;

 swap(a, left, (left + right) / 2);

 last = left;

 for (i = left + 1; i <= right; i++)
  if(a[i] < a[left])
   swap(a, ++last, i);

 swap(a, left, last);

 qsort(a, left, last - 1);
 qsort(a, last + 1, right);
}
コメント2件

224
デフォルトの名無しさん[]   投稿日:2015/12/23 17:27:00  ID:fM9ORKUP.net(9)
>223
10000倍高速化の比較対象はそれでも良いぞ。

225
デフォルトの名無しさん[sage]   投稿日:2015/12/23 17:56:16  ID:ZCUCTd42.net(2)
一万倍とかwwww
どこをどうやったら一万倍差がつくんだ
コメント3件

226
デフォルトの名無しさん[]   投稿日:2015/12/23 18:11:01  ID:2bKYe5U2.net(4)
>225
クイックソートの最悪の時間計算量はn^2なので
データによってはとても大変なんよ。
コメント2件

227
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/23 18:27:35  ID:PjxVSF2U.net
アルゴリズムの抽象化に静的言語使うチンパンとか話にならないから(´・ω・`)


def qsort a , left , right
  return if left >= right
  swap a , left , (left + right) / 2
  last = left

  (left + 1).step(right) do |i|
    if a[i] < a[left]
        swap a , last+=1 , i
    end
  end
  swap a , left , last
  qsort a , left , last - 1
  qsort a , last + 1, right
end
コメント1件

228
デフォルトの名無しさん[]   投稿日:2015/12/23 18:50:34  ID:fM9ORKUP.net(9)
>225
最低10000倍ね。笑

>219
>処理件数が増えたら速度の差なんて、何万倍どころじゃないし。

あ、小学生のように0.0001万倍とか言い逃れるかも。爆笑

229
デフォルトの名無しさん[sage]   投稿日:2015/12/23 21:36:40  ID:L95mHKNc.net

230
デフォルトの名無しさん[sage]   投稿日:2015/12/23 21:47:18  ID:ZCUCTd42.net(2)
万倍高速化はよwww

231
デフォルトの名無しさん[]   投稿日:2015/12/23 22:10:25  ID:fM9ORKUP.net(9)
ID:u0B3Sjd8
10000倍の高速化まだ? 常識的で簡単そうな口ぶりだったけど。

232
デフォルトの名無しさん[]   投稿日:2015/12/23 22:12:02  ID:fM9ORKUP.net(9)
万は間違いだったとしても、最低でも倍速は楽勝なんだろ。
コメント1件

233
デフォルトの名無しさん[]   投稿日:2015/12/23 22:29:26  ID:zjRNfIWb.net(3)
>232
速度以前に >223 は簡単にスタックオーバーフローするよ。
それを防ぐ方法を教えてやってよ。
コメント2件

234
デフォルトの名無しさん[sage]   投稿日:2015/12/23 22:33:54  ID:QhR+qVh6.net(3)
>233
繰り返し版が明示的スタックに使うヒープと同サイズに
マシンスタックの上限を変更すればOK

235
デフォルトの名無しさん[]   投稿日:2015/12/23 22:55:30  ID:zjRNfIWb.net(3)
いや、君に言ったわけじゃないし、最適化を教えてやれってことなんだけど。

236
デフォルトの名無しさん[]   投稿日:2015/12/23 23:35:43  ID:fM9ORKUP.net(9)
>233
バカなの? >222読めないの?
10000倍の高速化まってんだから、くだらねー横槍入れないように。
お前が10000万倍高速化するならかまってやんよ。

237
デフォルトの名無しさん[sage]   投稿日:2015/12/23 23:43:11  ID:QhR+qVh6.net(3)
>226
繰り返しか再帰かに関係ないがな。
pivotの選び方次第だろ。
それは明示的にスタック使う繰り返し版クイックソートでも同じ。
コメント1件

238
デフォルトの名無しさん[]   投稿日:2015/12/23 23:58:42  ID:2bKYe5U2.net(4)
>237
あたりまえ
コメント1件

239
デフォルトの名無しさん[sage]   投稿日:2015/12/24 01:02:26  ID:aanAAc0G.net(2)
>238
>225に対するレスとして
>226はおかしいだろ。
気にならんのか?
コメント1件

240
デフォルトの名無しさん[sage]   投稿日:2015/12/24 01:08:56  ID:VDgCwlJn.net
>239
何を言っているのか意味がわからない…
コメント1件

241
デフォルトの名無しさん[sage]   投稿日:2015/12/24 06:51:58  ID:2ShnOfV/.net(4)
>240
最悪パターンでもよいから、10000倍高速化しろよ。

242
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/24 08:02:14  ID:Ecjqx/Av.net
スキルない人間をいくら叩いても何も出てこないのに
ここは動物園かよ

243
デフォルトの名無しさん[]   投稿日:2015/12/24 08:55:59  ID:Q6U3kr4L.net
黒魔術師は再帰関数が大好き

244
デフォルトの名無しさん[sage]   投稿日:2015/12/24 09:09:51  ID:Zs2o0pyD.net
黒魔術師はマクロを生成するマクロも大好き

245
デフォルトの名無しさん[]   投稿日:2015/12/24 11:57:48  ID:2ShnOfV/.net(4)
再帰を必死に否定しているバカの主張

1 スタックが制限の厳しいリソースである環境が全てだと思い込み、再帰の致命的なペナルティだと主張する
2 シェル関数呼び出しをエビデンスとして、再帰が130倍遅いと主張する
3 再帰版のqsortは数万倍遅いと主張するが、数万倍速いはずの非再帰版を示さない
4 知能が低く再帰を理解できない。それをもって再帰は難解と主張する。
コメント1件

246
デフォルトの名無しさん[]   投稿日:2015/12/24 14:54:05  ID:QIUsopJK.net
>245
そうやって執拗に絡むのもはっきりいって馬鹿丸出しだよ。
せっかく相手がクイックソートのコードを書いてくれたんだから
そのコードの問題点を指摘する方が賢そうに見えると思ったんだけどね。
コメント1件

247
デフォルトの名無しさん[sage]   投稿日:2015/12/24 16:38:25  ID:2ShnOfV/.net(4)
>246
さらなる意味不明なバカが出てきたな。
コード出したのは再帰を必死で否定してるバカじゃないぞ。

248
デフォルトの名無しさん[]   投稿日:2015/12/24 17:26:51  ID:ri4CJahT.net
最初期は再帰をサポートしてなかった計算言語があるらしい

249
デフォルトの名無しさん[sage]   投稿日:2015/12/24 18:44:44  ID:W/SZtGXt.net(2)
今はハードウェアレベルで再帰が実装されてるからな。
それを思えばいかに再帰が本質的にプログラミングに必要とされてるかってことだな。

250
デフォルトの名無しさん[sage]   投稿日:2015/12/24 20:04:26  ID:aanAAc0G.net(2)
計算可能性を探求する試みにおいて最初に出たのが、
エルブラン・ゲーデルの一般帰納関数だからね。
次がラムダ計算。
その次がノイマン型計算機直系の先祖であるチューリングマシン。

251
デフォルトの名無しさん[sage]   投稿日:2015/12/24 20:37:54  ID:Hny3MC9I.net
10000倍だっておとなしいぐらい。

再帰だと落ちまくるから∞倍だって当たり前だろ。

252
デフォルトの名無しさん[sage]   投稿日:2015/12/24 20:46:14  ID:W/SZtGXt.net(2)
メモリ足りないなら動かないのは再帰もループも変わらんだろ。
ループのほうが本質的にメモリ使用量少なくなるとかなら話は変わってくるが。
コメント1件

253
デフォルトの名無しさん[sage]   投稿日:2015/12/24 20:58:31  ID:2ShnOfV/.net(4)
これだね。本当に知能が低い。
> 1 スタックが制限の厳しいリソースである環境が全てだと思い込み、再帰の致命的なペナルティだと主張する

254
デフォルトの名無しさん[sage]   投稿日:2015/12/25 18:57:10  ID:IqCVGu/8.net
>再帰もループも変わらんだろ。

なんで試してみないんだ?
再帰とループでクイックソート

ループ方式なら、データが何千万件あろうと無問題
コメント2件

255
デフォルトの名無しさん[sage]   投稿日:2015/12/25 19:44:32  ID:TZMq+uAI.net
>254
ループのソース晒してみろや

256
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/26 05:53:41  ID:QzXIU7/C.net
覚えたての知識を使ってレスバトルするだけのスレなんていらねーから
コメント1件

257
デフォルトの名無しさん[sage]   投稿日:2015/12/26 08:33:15  ID:oIXuKyHb.net(16)
いらないスレを使って自分の意見を垂れ流すとか有効活用乙としか

258
デフォルトの名無しさん[]   投稿日:2015/12/26 10:19:35  ID:EXUTS9i+.net(10)
そういう初心者の遊び場もあっていいと思うけどなあ

259
デフォルトの名無しさん[sage]   投稿日:2015/12/26 12:54:13  ID:KD7gR2Cz.net
>252
再帰の方は、関数呼び出し大量に発生するから、リターンアドレス待避とレジスタ待避に、メモリーが喰われる。
コメント1件

260
デフォルトの名無しさん[sage]   投稿日:2015/12/26 13:36:54  ID:oIXuKyHb.net(16)
>259
ループの方は今どの範囲についてソートしているのかという情報が大量に発生するから同じ議論が成り立つ訳だが。
コメント2件

261
デフォルトの名無しさん[]   投稿日:2015/12/26 13:40:32  ID:6n5NtJkM.net(26)
>260
ループはヒープ、再帰はスタック
つまり、ヒープとスタックがぼくらを助けてくれるんだ!

262
sage[]   投稿日:2015/12/26 15:02:23  ID:Igcba1qr.net(15)
>254
>222(再帰版qsort)で5000万件ソートしてみた。楽勝で終了する。
必死で再帰を否定しているバカが低知能だという事がまた証明されてしまった。
頭が悪いって本当にかわいそう。
コメント1件

263
デフォルトの名無しさん[sage]   投稿日:2015/12/26 16:45:09  ID:YV12MLKo.net(5)
>262
再帰版でうまくいくのだったら非再帰版ではもっとうまくいく,という発想はないのかね?
コメント2件

264
デフォルトの名無しさん[sage]   投稿日:2015/12/26 16:59:02  ID:oIXuKyHb.net(16)
>263
うまくいくって言ったって高々定数倍速くなるだけだろ?
非再帰版を書いたり保守したりするコストより新しい速いマシンを買ったほうが安く上がるって発想は無いのかね?

265
デフォルトの名無しさん[]   投稿日:2015/12/26 17:27:47  ID:Igcba1qr.net(15)
>263
知能障害者って本当にかわいそう。
5000万件でソート出来てるってことは、「再帰はスタックあふれる」という迷信が嘘だという発想には至らないのかね。
クイックソートの深さの制御はすでに研究し尽くされてて、全然問題ないんだよ。

266
デフォルトの名無しさん[]   投稿日:2015/12/26 17:37:15  ID:Igcba1qr.net(15)
あっ、繰り返し版は10000倍速いんだっけ? (爆笑)
早く実装コードみたいなあ。
コメント1件

267
デフォルトの名無しさん[]   投稿日:2015/12/26 18:11:47  ID:6n5NtJkM.net(26)
>266
そんなに実装したいのなら教えてしんぜよう。
5000万件で >201 を実行してみたまえ。
再帰呼出しというのは効率が悪いとても頭の悪いやり方なんだよ。
コメント2件

268
デフォルトの名無しさん[]   投稿日:2015/12/26 18:13:42  ID:EXUTS9i+.net(10)
シェルスクリプトを証拠として使うのは笑ってしまうからやめろ
コメント1件

269
デフォルトの名無しさん[]   投稿日:2015/12/26 18:16:50  ID:6n5NtJkM.net(26)
>268
反論できないのな?じゃあお前の負けってことで。

270
デフォルトの名無しさん[]   投稿日:2015/12/26 18:22:25  ID:EXUTS9i+.net(10)
野次飛ばしてる観客相手に勝利宣言も笑うからやめろ
おまえはプロレスのヒール役か

271
デフォルトの名無しさん[sage]   投稿日:2015/12/26 18:26:32  ID:gy7QXsCA.net
>高々定数倍

そんな安全なもんじゃあねぇ。
データが増えれば差も増大。
コメント1件

272
デフォルトの名無しさん[]   投稿日:2015/12/26 18:38:59  ID:Igcba1qr.net(15)
>267
ぷぷぷぷ
知能障害者は>201をクイックソートと呼ぶのか?
コメント1件

273
デフォルトの名無しさん[]   投稿日:2015/12/26 18:41:57  ID:Igcba1qr.net(15)
>271
ミジメすぎるぞ。クイックソートのスタック消費量はlog nに抑える事が可能。
こんな基本的な事を知らないから数千万件はソート出来ない。キリッ

とか、赤面な発言しちゃうんだよ。
コメント1件

274
デフォルトの名無しさん[]   投稿日:2015/12/26 18:47:36  ID:Igcba1qr.net(15)
ちなみにglibcのqsort(これは非再帰)も同じ手法で自前スタックを管理してる
知能が低いって本当にかわいそう。

https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=stdlib/qsort.c;h=04c25b984f74a8f738233cc6da8a738b6437833c;hb=b8079dd0d360648e4e8de48656c5c38972621072

/* The next 4 #defines implement a very fast in-line stack abstraction. */
/* The stack needs log (total_elements) entries (we could even subtract
log(MAX_THRESH)). Since total_elements has type size_t, we get as
upper bound for log (total_elements):
bits per byte (CHAR_BIT) * sizeof(size_t). */

275
デフォルトの名無しさん[]   投稿日:2015/12/26 19:02:41  ID:6n5NtJkM.net(26)
>272
バカかお前は。ボウフラサイズの脳ミソしか搭載してないのか?
ただの繰り返しでさえ130倍の差があるのだから
クイックソートを実装したらそれ以上の開きがあるのは自明だろうが。
コメント2件

276
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:08:33  ID:YV12MLKo.net(5)
>273
log n は発散するんだが‥
コメント1件

277
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:09:07  ID:oIXuKyHb.net(16)
>275
バカはお前だ。シェルスクリプトでクイックソートを実装するなんて誰がするか。
sortプログラムを使え。

ちなみにシェルスクリプトの場合、関数呼び出しはそれ自体がスタックの深さをnとしてO(n^2)くらいの計算時間を持つっぽい。
コメント1件

278
デフォルトの名無しさん[]   投稿日:2015/12/26 19:09:41  ID:Igcba1qr.net(15)
>275
ぷぷぷ。知能障害は本当にかわいそう。
qsortの繰り返し版は関数呼び出しの代わりに自前でスタック管理しなきゃならないんだよ。
10000倍高速化の実証コードはよ。
コメント1件

279
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:10:23  ID:oIXuKyHb.net(16)
>276
確かに、うん、確かに、非常にゆるやかに発散するね。

n=2^64としてもlog nは64だけどね。
定数と変わんないレベルだよね。

280
デフォルトの名無しさん[]   投稿日:2015/12/26 19:11:25  ID:6n5NtJkM.net(26)
>277
実装できないのな?無理なのな?はい論破。
コメント2件

281
デフォルトの名無しさん[]   投稿日:2015/12/26 19:14:27  ID:6n5NtJkM.net(26)
>278
>201 がすべてを物語っている。
これが何よりの証拠。再帰がとてつもなく効率が悪いことを
つまびらかにしてみせた。ここに来て見てみぬふりは通用しない。
エビデンスもきちんと示されている。もはや知らぬ存ぜぬでは済まされない。
コメント3件

282
デフォルトの名無しさん[]   投稿日:2015/12/26 19:14:30  ID:Igcba1qr.net(15)
>280
何万倍も高速だっ。キリッ。
って主張してる奴に実証責任があるんだが

ガイジにはわからないの?
コメント1件

283
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:16:21  ID:oIXuKyHb.net(16)
>280
練習のためなら兎も角、シェルスクリプト「だけ」でソーティングなんてやる意味が無い。
ループだろうと再帰だろうとね。
理由は遅いから。
ループで組んだとしても、非常に遅いから、実装するだけの意味が無い。
sortを呼べばCで書かれた非常に高速でスケーラブルなソーティングが出来るから、普通はそっちを使う。

さぁ君は一体何を論破したというのだい?

284
デフォルトの名無しさん[]   投稿日:2015/12/26 19:16:31  ID:Igcba1qr.net(15)
>281
障害児くん
10000倍と130倍って、どっちがどれだけ大きいかわかる?
コメント1件

285
デフォルトの名無しさん[]   投稿日:2015/12/26 19:17:31  ID:6n5NtJkM.net(26)
>282
>201 で完全に証明してみせた。
反証する責任がお前にあるとは俺は思わないよ。
俺は自分の都合の良いように他人に責任を押し付けるなんて
卑劣な真似はできない。俺はただの真実の探求者。
コメント1件

286
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:21:05  ID:oIXuKyHb.net(16)
>281
ちょっと試せば分かることなんだけど、シェルスクリプトに於いて再帰の実行速度は
呼び出し深さnに対してO(n^2)くらい掛かる。

で、クイックソートの呼び出しの深さは要素数mについてO(log m)なので
O(log^2 m)の計算時間が再帰だけで掛かることになる。
つまり全体の計算量はO(m log^2 m)だ。

一方でループの場合にはO(m log m)掛かるから、その差はO(log m)だ。
この値はm=5000万、底2として約25だ。

つまり、理論上は再帰とループで25倍の差が開きうる。
そして君は10000倍違うと言う。
残り400倍はどうやって稼ぐんだい?
コメント2件

287
デフォルトの名無しさん[]   投稿日:2015/12/26 19:21:48  ID:6n5NtJkM.net(26)
>284
ボウフラ並みの脳ミソをメダカにでも食われたのかお前。
頭悪いにも程があるだろうが。こんな鶏頭野郎の
相手する俺の身にもなれ。なんていいやつなんだ俺。
聖人君子としか言いようがないわ。>201 は5000回の繰り返しだ。
5000回の繰り返しでさえ130倍の開きがあるのだから回数が
増えれば差は開く一方だ。だから、>267 で5000万と言ったのだよ。
コメント1件

288
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:23:23  ID:PvF8tuZ2.net
霊がいるのかいないのかは判りませんが
人間の目が無いものを見ることがあるのは事実です

289
デフォルトの名無しさん[]   投稿日:2015/12/26 19:23:40  ID:EXUTS9i+.net(10)
差は開くだろうけど比も開くのか?
コメント1件

290
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:23:44  ID:oIXuKyHb.net(16)
>287
5000回の再帰で130倍の差が開いた訳じゃなくて、
深さ5000の関数呼び出しで130倍の差が開いたって事を理解してる?

5000万要素のクイックソートなら最良のケースで深さ25の再帰だからね?
130倍どころか2倍にもならないからね?
コメント1件

291
デフォルトの名無しさん[]   投稿日:2015/12/26 19:23:54  ID:6n5NtJkM.net(26)
>286
クイックソートを実装して試したのか?あ?
だれが実装するかと言っていたのと矛盾するだろうが。
つまり、君は嘘をついている。ゆえに俺が言ってることの方が正しい。はい論破。

292
デフォルトの名無しさん[]   投稿日:2015/12/26 19:26:45  ID:6n5NtJkM.net(26)
>289
当たり前だろ。小さな町の町長が東京の都知事になって
仕事をこなせると思うか?数が増えるほどにコストは増大するんだ。劇的にな。劇的にだ!
コメント1件

293
デフォルトの名無しさん[]   投稿日:2015/12/26 19:29:40  ID:Igcba1qr.net(15)
障害児発作を発症中

294
デフォルトの名無しさん[]   投稿日:2015/12/26 19:31:02  ID:EXUTS9i+.net(10)
>292
すまん、その例えどこまで信用していいか分からないからそういうの語るときは式でお願い
コメント1件

295
デフォルトの名無しさん[]   投稿日:2015/12/26 19:31:21  ID:6n5NtJkM.net(26)
>290
ヤってみたのか?ヤったのか?ヤってから言えや!
さっさとクイックソートのコード提示しろよ!
いつまでグズグズ言ってりゃ気が済むんだ
俺はお前がクイックソートをシェルで実装するのをあとどれだけ待てばいいわけ?
コメント2件

296
デフォルトの名無しさん[]   投稿日:2015/12/26 19:32:53  ID:Igcba1qr.net(15)
>295
再帰は数万倍遅いといったお前が実証しろよ
コメント1件

297
デフォルトの名無しさん[]   投稿日:2015/12/26 19:33:00  ID:6n5NtJkM.net(26)
>294
log2・5000 : log2・5000 ? 30 ⇒ log2・50000000 : 10^4 ? A
QED.
コメント1件

298
デフォルトの名無しさん[]   投稿日:2015/12/26 19:34:26  ID:Igcba1qr.net(15)
1万倍高速なクイックソートはよ
コメント1件

299
デフォルトの名無しさん[]   投稿日:2015/12/26 19:34:37  ID:6n5NtJkM.net(26)
>296
俺は >201 で示したし、それで十分に満足の行く結果を得た。
>201 に不満だというのならそれを超えるものをお前が書け。自分でやれ。
他人にやらせるっていうのは俺の常識からは考えられない。

300
デフォルトの名無しさん[]   投稿日:2015/12/26 19:35:10  ID:6n5NtJkM.net(26)
>298
お前がやるんだ。お前が言い出したことだろうが。

301
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:35:32  ID:oIXuKyHb.net(16)
>295
どうして俺が実装しなきゃならないわけ?
数万倍遅いって言い出した奴が実証のためにコードを提供するのが筋だろ?
コメント1件

302
デフォルトの名無しさん[]   投稿日:2015/12/26 19:42:36  ID:6n5NtJkM.net(26)
>301
そんな筋は通らない。実証コードが欲しいといいだしたのは
お前なのだからお前が自分で書け。言い出しっぺの法則は
プログラマを始め科学的論証に関わる人間すべてに通じる基本原則だ。
どうやればそれを確認できるかという手順も道筋も結論も示した。
自分の満足のいくものが欲しいのなら自分で行動しろ。
他人の足にしがみつくな、気持ち悪い。
コメント1件

303
デフォルトの名無しさん[]   投稿日:2015/12/26 19:44:38  ID:6n5NtJkM.net(26)
1万倍の実証コードとか言い出しといて書かないってどういうことよ?
他人に頼りっきりってどういうことよ?
夢があるのなら自分で叶えろよ
親の足かじってんじゃねえぞニート野郎

304
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:50:48  ID:oIXuKyHb.net(16)
>302
IDをよく見ろ。俺は実証コードが欲しいだなんて一言も言ってない。
コメント1件

305
デフォルトの名無しさん[]   投稿日:2015/12/26 19:51:36  ID:EXUTS9i+.net(10)
>297
何この記法初めて見た
もしかして情報界隈では常識なのか?
コメント1件

306
デフォルトの名無しさん[]   投稿日:2015/12/26 19:51:49  ID:Igcba1qr.net(15)
>219
親のスネかじってんじゃねーぞニート野郎
とっとと数万倍速いクイックソートの実証しろよ

307
デフォルトの名無しさん[]   投稿日:2015/12/26 19:54:34  ID:Igcba1qr.net(15)
ID:6n5NtJkMは発狂して「再帰は数万倍遅い」発言をウヤムヤにしたい模様
でも、まだ300レス。先は長いぞ。頑張れ。

308
デフォルトの名無しさん[sage]   投稿日:2015/12/26 19:56:25  ID:oIXuKyHb.net(16)
>305
俺も見たこと無い。
一瞬、三項演算子にも見えるけど順序がおかしいし。
コメント1件

309
デフォルトの名無しさん[]   投稿日:2015/12/26 19:57:11  ID:6n5NtJkM.net(26)
>304
言ったかどうかは問題じゃない!
お前はクイックソートで1万倍の差があるのか確認したい、
それを確認する手段としてシェルでクイックソートを実装すればわかる
ということを俺は示したんだよ。それだけわかってればいいよもう!
コメント1件

310
デフォルトの名無しさん[]   投稿日:2015/12/26 20:00:13  ID:6n5NtJkM.net(26)
>308
?はただの文字化けだぞ。
数理式計算量証明の理想解近似法を大学で習ってたらわかるだろ。
情報科学の基礎中の基礎だし。
コメント1件

311
デフォルトの名無しさん[sage]   投稿日:2015/12/26 20:02:01  ID:oIXuKyHb.net(16)
>309
いいや、そもそもそんな事は望んでない。よく読め。
俺が言いたいのは、1万倍もの差が出るなんて事は理論上ありえないって事だ。

それでも尚、実際に1万倍の差が出ると言い張るのであれば
それを実証するコードを君が示すべきだよね?
コメント1件

312
デフォルトの名無しさん[]   投稿日:2015/12/26 20:03:37  ID:EXUTS9i+.net(10)
>310
すまん、その文字化けしてるところ元は何だったのか教えてくれ
O?
コメント1件

313
デフォルトの名無しさん[]   投稿日:2015/12/26 20:05:55  ID:6n5NtJkM.net(26)
>311
だから、俺は示したって言ってるだろうが!
>201 でくっきりはっきりと証明してみせただろうが。
それで満足できないというのであれば、満足の行くコードを見たいというのであれば
お前がそれを書くべきだ!それが論理的検証というものだ。科学的な姿勢というものだ。
他人の論文に満足できないと言ってるばかりじゃ学会では一切評価されないよ。
それを超える論文を自分で書いてこれでどうだと魅せつけるべきだ。
君はシェルでクイックソートを書くべきなんだ!!
コメント1件

314
デフォルトの名無しさん[]   投稿日:2015/12/26 20:06:59  ID:6n5NtJkM.net(26)
>312
掛け算の掛けるだ。
右側では1万倍になってるのがわかっていただけると思う。

315
デフォルトの名無しさん[sage]   投稿日:2015/12/26 20:09:01  ID:YV12MLKo.net(5)

316
デフォルトの名無しさん[sage]   投稿日:2015/12/26 20:09:33  ID:YV12MLKo.net(5)

317
デフォルトの名無しさん[sage]   投稿日:2015/12/26 20:13:31  ID:oIXuKyHb.net(16)
>313
いいかい?
君は「示した」と何度もはっきり発言してはいるけど、実のところ何も示しちゃいないんだ。
コメント1件

318
デフォルトの名無しさん[]   投稿日:2015/12/26 20:22:57  ID:6n5NtJkM.net(26)
>315
バカかお前は。大脳半球が全損して産まれて来たのか?
名前解決に時間がかかるとするならば、名前解決まで含めて再帰呼出しだ。
外務省はシリアへの渡航を自粛するよう日本国民に通告しているが、そんな不安な情勢の中、
「シリアが危険なんじゃないテロリストが危険なんだ」と言って
意気揚々とシリアに出かけていく頭の中お花畑野郎と同じだろうが。
お前が言ってるのはそれと全く同じこと。
シリアという地域でテロの被害に遭う確率が高いから外務省は渡航を自粛するように
必死に呼びかけているんだ。少しでも日本の国民がテロの被害に遭わないよう骨身を削って
頑張っているんだ。再帰呼出しでプログラム事故に遭う確率が高いから俺は再帰を自粛するよう
呼びかけているんだ。外交官としての俺の立場に立って再考してみろ。お前がどれだけ
愚かなことを言っているか今一度ようく考えてみることだな。

319
デフォルトの名無しさん[]   投稿日:2015/12/26 20:24:31  ID:EXUTS9i+.net(10)
やべえ記号わかってもなお式の意味わかんねえw

320
デフォルトの名無しさん[]   投稿日:2015/12/26 20:25:46  ID:Igcba1qr.net(15)
障害児は
シェル関数呼び出しはwhileより130倍遅い

再帰版のクイックソートは何万倍も遅い
が等価らしい

必死で再帰を否定しているバカが低知能であることのエビデンスがまた一つ明らかになってしまった

321
デフォルトの名無しさん[]   投稿日:2015/12/26 20:27:35  ID:6n5NtJkM.net(26)
>317
>201 の画像が見えないのか?俺はエビデンスをしっかりちゃっかりくっきりまるっきり示したぞ。
お前はアイマスク付けて前が見えないと言ってるだけのただのうつけ者。話にならない。

322
デフォルトの名無しさん[]   投稿日:2015/12/26 20:30:11  ID:EXUTS9i+.net(10)
もしかしてだけどさ、もししてだけどさ、>201で示されてることってシェル関数呼び出しがシェルwhileより130倍遅いことだけじゃね?
コメント1件

323
デフォルトの名無しさん[]   投稿日:2015/12/26 20:35:37  ID:6n5NtJkM.net(26)
>322
おいおいいい加減にしろよナメクジ野郎。
自らの関数を呼び出すことを再帰と言うのだろうが。
関数の呼び出しが遅い、すなわち再帰の効率がとてもよろしくないということだ。
テロリストが民間人を殺害するのならば、テロがはびこっているシリアには行くべきじゃないということだ。
お前、後藤さんのご家族の前で後藤さんが悪いって言えるのか?後藤さんは悪いよ。
とても危険なところと知りつつシリアに言ったんだから。だけど、それをご家族の前で言う意味がないよね。

324
デフォルトの名無しさん[]   投稿日:2015/12/26 20:38:45  ID:6n5NtJkM.net(26)
再帰を使うっていうのはテロリストの前に自らの首を差し出すことと同義。
何があっても文句言うな。そして周囲の人間をその愚行に巻き込むな。
悲しませるな。俺はお前らが再帰を使うと悲しいよ。

325
デフォルトの名無しさん[]   投稿日:2015/12/26 21:07:17  ID:oIXuKyHb.net(16)
純粋にシェルスクリプトだけでクイックソートを組むのは骨が折れたぞっと
http://www.fastpic.jp/images.php?file=2429159438.png

ループのほうが遅いです本当にどうもありがとうございました
コメント2件

326
デフォルトの名無しさん[sage]   投稿日:2015/12/26 21:10:42  ID:oIXuKyHb.net(16)
コードが見たけりゃどうぞ。
https://ideone.com/b9DfXr
コメント2件

327
デフォルトの名無しさん[]   投稿日:2015/12/26 21:21:55  ID:6n5NtJkM.net(26)
      ____
    /      \
  / ─    ─ \
/   (●)  (●)  \
|      (__人__)     |
\     `⌒´    ,/
/     ー‐    \

328
デフォルトの名無しさん[]   投稿日:2015/12/26 21:22:21  ID:EXUTS9i+.net(10)
なんだやっぱり再帰の方がいいのか

329
デフォルトの名無しさん[sage]   投稿日:2015/12/26 21:26:26  ID:hFLlv/LI.net(3)
ぐうの音も出ないなこれは

330
デフォルトの名無しさん[]   投稿日:2015/12/26 21:31:21  ID:6n5NtJkM.net(26)
シリアとか言わなきゃよかった
後藤さんのくだりとか意味わかんないし

331
デフォルトの名無しさん[sage]   投稿日:2015/12/26 21:40:05  ID:hFLlv/LI.net(3)
フィボナッチとかはループと再帰で指数倍の差が出るんだっけ?

332
デフォルトの名無しさん[sage]   投稿日:2015/12/26 22:10:31  ID:oIXuKyHb.net(16)
メモ化しないコードだとそうなるね

333
デフォルトの名無しさん[sage]   投稿日:2015/12/26 22:19:22  ID:hFLlv/LI.net(3)
メモ化とか線形のメモリ食うじゃね?
コメント1件

334
デフォルトの名無しさん[sage]   投稿日:2015/12/26 22:46:18  ID:JxygBNoz.net(2)
>333
直近2つを記憶するだけだから定数
コメント1件

335
デフォルトの名無しさん[sage]   投稿日:2015/12/26 23:20:10  ID:YV12MLKo.net(5)
>334
それは再帰的定義を使う方では?
フィボナッチ数列の第n項を直接nの式で表せるはずだが
コメント1件

336
デフォルトの名無しさん[sage]   投稿日:2015/12/26 23:36:55  ID:JxygBNoz.net(2)
>335
文脈読もうな。
メモ化に必要な記憶領域が線形ではないか、と言ってる奴がいたから定数だ、と答えただけ。

337
デフォルトの名無しさん[sage]   投稿日:2015/12/26 23:44:58  ID:jxcpNE9M.net
まだアーキ依存どころか言語依存の話してるの?

338
デフォルトの名無しさん[sage]   投稿日:2015/12/27 00:05:08  ID:TlhMnrM9.net(2)
再帰メモ化定数メモリフィボナッチってどんなソースになるの?

339
デフォルトの名無しさん[sage]   投稿日:2015/12/27 00:35:22  ID:nuYFrBF7.net(5)
fibonacci = fib (0,1)
fib (m1,m2) 0 = m2
fib (m1,m2) n = fib (m2, m1+m2) (n-1)

340
デフォルトの名無しさん[sage]   投稿日:2015/12/27 00:38:15  ID:nuYFrBF7.net(5)
タプルの代わりに木かハッシュを使えば値を全部保持する
普通のメモ化にできるがフィボナッチの計算にはもちろん不要

341
デフォルトの名無しさん[sage]   投稿日:2015/12/27 00:54:47  ID:Y7IK7QLW.net(16)
>325
bashを使うのであれば

if [ $i -ge $j ]; then
の代わりに
if (( $i < $j )); then と書ける。

また(( )) の中で単体の変数は$を省略できる
if (( i < j )); then

一行で書くこともできる。
(( i >= $ )) && break

342
デフォルトの名無しさん[sage]   投稿日:2015/12/27 01:09:36  ID:Y7IK7QLW.net(16)
stack=("${stack[@]:0:((${#stack[@]}-2))}")

これは、こう書ける。

stack=("${stack[@]::${#stack[@]}-2}")

ついでに、""をつける方が正しいのではあるが、
値にスペースが無ければ、"" は省略可能。

343
デフォルトの名無しさん[sage]   投稿日:2015/12/27 01:15:06  ID:Y7IK7QLW.net(16)
p=$(( $((${array2[$i]}+${array2[$j]}))/2 ))


$((・・・)) の中では普通に () が使用可能

p=$(( (${array2[$i]} + ${array2[$j]}) / 2 ))

344
デフォルトの名無しさん[sage]   投稿日:2015/12/27 01:21:25  ID:Y7IK7QLW.net(16)
for i in `seq 1 1 1000`; do


`` は基本的に $() と同等。新しい$()の使用が推奨されている。

for i in $(seq 1 1 1000); do


また、これは以下のように書ける

for i in {1..1000}; do

345
デフォルトの名無しさん[sage]   投稿日:2015/12/27 01:32:25  ID:Y7IK7QLW.net(16)
lintツールとして、shellcheckコマンドがある。

qsort_rec $left $((i-1))
^-- SC2086: Double quote to prevent globbing and word splitting.

qsort_rec $((j+1)) $right
^-- SC2086: Double quote to prevent globbing and word splitting.

$leftと$rightにスペースが入ってる場合に問題になるから""をつけろと警告される。

これは冒頭で
left=$(($1))

right=$(($2))
のようにして数値であると保証してあげれば消える。

変数 pair が未使用

その他の警告は、上の指摘を修正すれば消えるはず

346
デフォルトの名無しさん[sage]   投稿日:2015/12/27 01:46:16  ID:Y7IK7QLW.net(16)
ループ版で時間がかかってるのはこの部分な気がするな。
配列をコピーしているわけだし。

stack=(${stack[@]::${#stack[@]}-2})

http://www.drk7.jp/MT/archives/000995.html
さて、ここの非再帰版を見ると、どうも配列のコピーはしてないようだ。
ループ版は高速化の余地がありそうだ。

やってみるかね? うまく実装できるかな?

347
デフォルトの名無しさん[]   投稿日:2015/12/27 02:00:40  ID:qGJmRem2.net
ループの途中でコマンドを呼び出すようにすればもう少し遅くできるんじゃないかな。

348
デフォルトの名無しさん[sage]   投稿日:2015/12/27 02:20:49  ID:Y7IK7QLW.net(16)
さーて、コードをほとんど読まずに、Perl版をそのまま置き換えてみたが
きちんと動かんぞとw 面倒くさいな。
速度的には再帰版より速くなりそうな感じはしてるが、処理間違ってるからなw

349
デフォルトの名無しさん[sage]   投稿日:2015/12/27 02:32:42  ID:Y7IK7QLW.net(16)
あ、できたっぽい? 参考にしたコードに二箇所バグが有るようだな。

> &qsort_array($array2,0,$size);
> $right_stack[0] = $right;

$sizeが$rightに入るが、正しくは$size-1

> if ($i - $left < $right - i) {

> if ( ($i - $left) < ($right - i) ) {

Perlの優先順位は、下のように解釈されるんだっけ?
そんなの変えないよな。

今コードを見直してる。

350
デフォルトの名無しさん[sage]   投稿日:2015/12/27 02:34:29  ID:Y7IK7QLW.net(16)
ごめん嘘だったw 。あれぇ〜?

351
デフォルトの名無しさん[sage]   投稿日:2015/12/27 02:58:09  ID:Y7IK7QLW.net(16)
Perl版実行してみたがもともとのコードからして動いてないw

352
デフォルトの名無しさん[sage]   投稿日:2015/12/27 03:31:06  ID:Y7IK7QLW.net(16)
マジめんどくさかったわw 参考にしたコードが悪すぎた。

他のコードと比べてよくわからん比較条件とか処理が多かったので
結局諦めてこっちを参考にした。
http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_102

結論。やっぱりループのほうが速かったねw
https://ideone.com/KmmnH7
recursive
real 0m0.550s
user 0m0.548s
sys 0m0.000s

loop
real 0m0.439s
user 0m0.436s
sys 0m0.000s


なお再帰版も>326よりも速くなっているのは、
上で指摘した点をリファクタリングしたため。
>326のコード
> recursive
> real 0m0.637s
> user 0m0.636s
> sys 0m0.000s
>
> loop
> real 0m0.723s
> user 0m0.720s
> sys 0m0.000s
コメント1件

353
デフォルトの名無しさん[sage]   投稿日:2015/12/27 03:35:18  ID:Y7IK7QLW.net(16)
ループの方が速かったので訂正よろw

328 名前:デフォルトの名無しさん[] 投稿日:2015/12/26(土) 21:22:21.55 ID:EXUTS9i+ [10/10]
なんだやっぱり再帰の方がいいのか

329 名前:デフォルトの名無しさん[sage] 投稿日:2015/12/26(土) 21:26:26.06 ID:hFLlv/LI [1/3]
ぐうの音も出ないなこれは
コメント2件

354
デフォルトの名無しさん[sage]   投稿日:2015/12/27 03:56:54  ID:nuYFrBF7.net(5)
定数の差とかどうでもいい

355
デフォルトの名無しさん[]   投稿日:2015/12/27 07:31:06  ID:hwv/tSGM.net(8)
>353
10000倍高速化してから言いなさい
コメント1件

356
デフォルトの名無しさん[sage]   投稿日:2015/12/27 07:39:49  ID:Y7IK7QLW.net(16)
>355
いいだしっぺどうぞw
コメント1件

357
デフォルトの名無しさん[]   投稿日:2015/12/27 07:50:22  ID:hwv/tSGM.net(8)
>356
>219の主張を受け継いで高速化したお前が言い出しっぺ

358
デフォルトの名無しさん[sage]   投稿日:2015/12/27 07:55:16  ID:Y7IK7QLW.net(16)
言い出しっぺの定義を変えるなよw
本当に往生際が悪いw

359
デフォルトの名無しさん[]   投稿日:2015/12/27 08:00:41  ID:hwv/tSGM.net(8)
>353でお前が訂正を求めたレスはID:6n5NtJkMの
「再帰は1万倍遅い」に対するレス。
なので、訂正を求めるには10000倍高速化する必要がある

知能障害児には理解不能かな?

360
デフォルトの名無しさん[sage]   投稿日:2015/12/27 08:06:42  ID:Y7IK7QLW.net(16)
と言われてもなぁw

俺は1万倍速いなんて言ってないし。
ループのほうが速いという証拠も出したからどうでもいいかなw

361
デフォルトの名無しさん[]   投稿日:2015/12/27 08:16:44  ID:hwv/tSGM.net(8)
じゃ、求めた訂正を取り消しなさい。
コメント1件

362
デフォルトの名無しさん[sage]   投稿日:2015/12/27 08:18:08  ID:Y7IK7QLW.net(16)
>361
これでいいのかい?w

ループの方が速かったよwww

328 名前:デフォルトの名無しさん[] 投稿日:2015/12/26(土) 21:22:21.55 ID:EXUTS9i+ [10/10]
なんだやっぱり再帰の方がいいのか

329 名前:デフォルトの名無しさん[sage] 投稿日:2015/12/26(土) 21:26:26.06 ID:hFLlv/LI [1/3]
ぐうの音も出ないなこれは

363
デフォルトの名無しさん[]   投稿日:2015/12/27 09:08:43  ID:hwv/tSGM.net(8)
少し速いと10000倍速いの区別がつかないおバカさんとうエビデンス(笑)

364
デフォルトの名無しさん[sage]   投稿日:2015/12/27 09:33:20  ID:Zmrinoji.net(40)
分かったことは
・再帰をただ単にループに直すと却って遅くなる
・最適化を施せばループのほうが速くなるが、10000倍速くなるなんてことはない
の2点でおっけい?
コメント2件

365
デフォルトの名無しさん[]   投稿日:2015/12/27 09:55:25  ID:TQTcd7lL.net(2)
そうだな。シリアがどうとか言い始めるほどループの方が優秀な訳では無さそうだな

366
デフォルトの名無しさん[sage]   投稿日:2015/12/27 10:12:22  ID:dpCOQ+Jx.net(2)
∞倍だね。

再帰なんってのと比較すること自体おかしい。
却って遅くなるなんて書いてる恥知らずは、プログラミング技術が無さ過ぎ。
コメント1件

367
デフォルトの名無しさん[sage]   投稿日:2015/12/27 10:24:13  ID:Zmrinoji.net(40)
>366
昨日から昨晩に掛けてのやり取りを知らないのか?
俺はそのやり取りから、>364が分かった事の全てであるって発言しただけなんだけど。

368
デフォルトの名無しさん[sage]   投稿日:2015/12/27 10:36:38  ID:dpCOQ+Jx.net(2)
やり取りからだって?

2chの妄想だけじゃなくて現実を見ろよ。
コメント1件

369
デフォルトの名無しさん[]   投稿日:2015/12/27 10:40:01  ID:hwv/tSGM.net(8)
∞倍 wwwww
無限大を憶えたての小学生かよ
quick sort 再帰/quick sort 非再帰 = ∞, すなわちquick sort 非再帰が0って事だな。

再帰を必死に否定しているバカの主張

1 スタックが制限の厳しいリソースである環境が全てだと思い込み、再帰の致命的なペナルティだと主張する
2 シェル関数呼び出しをエビデンスとして、再帰が130倍遅いと主張する
3 再帰版のqsortは数万倍遅いと主張するが、数万倍速いはずの非再帰版を示さない
4 知能が低く再帰を理解できない。それをもって再帰は難解と主張する。
5 非再帰版qsortの実行時間はゼロ

本当に知能が低い

370
デフォルトの名無しさん[sage]   投稿日:2015/12/27 11:19:02  ID:BwztOoZh.net(8)
>364
最適化なくてもループのが速いでしょ
10000倍は無いがw
コメント1件

371
デフォルトの名無しさん[sage]   投稿日:2015/12/27 11:22:49  ID:Zmrinoji.net(40)
>368
お前の中ではそうなんだろうな。そんな事より現実を見ろよ。

大本の彼らの主張は「クイックソートをお題にした場合に於いて再帰はループに比べて何万倍も差がでる(>219)」
俺らの主張は「そんなに差がでることは理論的にありえない(>286)」
であって、
ループのほうが再帰より「僅かでも」速いかどうか(>352-353)なんざ元々議論していない。

クイックソートをやる上で比較にならないほど再帰のほうが遅くなるというならソースを出せや
コメント1件

372
デフォルトの名無しさん[sage]   投稿日:2015/12/27 11:23:28  ID:yWds0j/q.net(3)
繰り返しの方が再帰より速い!
(ただしシェルスクリプトに限る)

373
デフォルトの名無しさん[sage]   投稿日:2015/12/27 11:23:33  ID:Zmrinoji.net(40)

374
デフォルトの名無しさん[sage]   投稿日:2015/12/27 11:29:16  ID:nlFV9EHx.net
>371
引数受け渡しとかレジスタ待避とかで、余分なメモリー操作が発生する。
コメント2件

375
デフォルトの名無しさん[sage]   投稿日:2015/12/27 11:32:56  ID:Zmrinoji.net(40)
>374
>260

定数オーダーの空間計算量で計算が出来ないなら、原理的に余分なメモリ操作は避けられない。
それはループでも一緒。
コメント1件

376
デフォルトの名無しさん[sage]   投稿日:2015/12/27 11:43:09  ID:yWds0j/q.net(3)
>374
明示的なスタック操作と大差ないのでは?

377
デフォルトの名無しさん[sage]   投稿日:2015/12/27 11:52:39  ID:BwztOoZh.net(8)
>373
純粋に処理速度の話してんならネイティヴコード化したものでないとさ
コメント1件

378
デフォルトの名無しさん[sage]   投稿日:2015/12/27 12:07:38  ID:BwztOoZh.net(8)
>375
横ですが、再帰呼出だとcallのオーバーがある分遅くなるで良いのかな?
まあ数パーセント程度だと思うけど
コメント2件

379
デフォルトの名無しさん[sage]   投稿日:2015/12/27 12:20:57  ID:nuYFrBF7.net(5)
クイックソートだからなんとかなってるだけで
たとえば赤黒木の操作を自前でスタック管理するアホはいないわけ
コメント14件

380
デフォルトの名無しさん[]   投稿日:2015/12/27 12:27:15  ID:Zmrinoji.net(40)
>377
ほい、最適化しなければループのほうが遅い証拠。
http://www.fastpic.jp/images.php?file=8506909875.png
コメント1件

381
デフォルトの名無しさん[sage]   投稿日:2015/12/27 12:33:24  ID:BwztOoZh.net(8)
>380
ああ分かってない人ねwww
コメント2件

382
デフォルトの名無しさん[sage]   投稿日:2015/12/27 12:35:34  ID:Zmrinoji.net(40)
>378
Pen4のデータシートの値を元にするなら
ループのコストと再帰のコストは約2.5〜3clockくらいの差になると思う。

今時のCPUならもっと差は縮まるだろうし、実際に測った訳じゃないけど
だいたいそのくらいになる筈。
コメント1件

383
デフォルトの名無しさん[sage]   投稿日:2015/12/27 12:38:44  ID:Zmrinoji.net(40)
>381
最適化が無くてもループの方が「僅かでも」速いって言い張るお前に
そうじゃない場合もあるって言ったのが>373
で、それに対しお前はネイティブコードで比較しろっつーから
「最適化無しのネイティブコードで」比較したんだが。

一体お前は何を求めてるんだ?

384
デフォルトの名無しさん[sage]   投稿日:2015/12/27 12:38:57  ID:BwztOoZh.net(8)
>382
そこまで解説できる人ならネイティヴコードだと逆転するのわかるでしょ
アセンブリで書けとは言わんけどさ

>381はすまん
コメント1件

385
デフォルトの名無しさん[sage]   投稿日:2015/12/27 12:42:13  ID:Zmrinoji.net(40)
>384
ループ以外の本質的な処理に100clock掛かるとすれば、
数%の差だけどループより再帰のが遅くなるって意見は正しいねって話さね

381については了解
コメント1件

386
デフォルトの名無しさん[sage]   投稿日:2015/12/27 12:46:31  ID:BwztOoZh.net(8)
>385
thx

387
デフォルトの名無しさん[sage]   投稿日:2015/12/27 13:08:45  ID:yWds0j/q.net(3)
>378
tail callを繰り返しに変換できるようなケースだと
関数呼び出しはコスト高かも知れないが、
ループ版では明示的スタック操作をしなければならない場合、
call,ret相当のことをjpと組み合わせて明示的にやらないといけない。
通常、関数呼び出し後のスタックフレームの確保はcalleeが明示的にやるからループ版と変わらないが、
スタックフレームの開放はretが自動的にやる。
だからコスト的には大差なく、
関数呼び出しの方が有利なケースだってあるはず。

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

388
デフォルトの名無しさん[]   投稿日:2015/12/27 13:36:27  ID:9aquywWv.net(33)
>379
お前は何を言っているんだ。
FreeBSDもLinuxも.NETもJavaも赤黒木はループで実装してるぞ。
再帰はプログラムの中に時限爆弾仕込むようなもの。再帰使うやつはテロリスト。
コメント8件

389
デフォルトの名無しさん[sage]   投稿日:2015/12/27 13:46:00  ID:nuYFrBF7.net(5)
頑張ってバグ入れずに済んでよかったね、としか。
しかもそれで得られる速度の向上も微々たるもの。
コメント3件

390
デフォルトの名無しさん[]   投稿日:2015/12/27 14:00:50  ID:9aquywWv.net(33)
>389
再帰にしたらバグが減るってものでもないしなあ。
不変オブジェクトを使うから再帰がやりやすいのであって
可変オブジェクトでの再帰はループよりもややこしいところがあるよ。
コメント1件

391
デフォルトの名無しさん[sage]   投稿日:2015/12/27 14:27:20  ID:+491JRRx.net
>388
>赤黒木はループで実装してる
本当か?やればできるものなのか?証拠をみせてみろ

平衡ニ分木であるからスタックもむやみに深くならないし,
正直なところ,可能だとしてループ化するメリットがあるのかね
コメント1件

392
デフォルトの名無しさん[]   投稿日:2015/12/27 14:37:53  ID:9aquywWv.net(33)
>391
freebsd red black tree source
とかで検索すれば出てくるよ

393
デフォルトの名無しさん[sage]   投稿日:2015/12/27 14:44:37  ID:BwztOoZh.net(8)
>390
バグ云々ではなくて、コード数や可読性だと思うが
そもそも再帰呼出を理解出来ない人は論外だが
コメント1件

394
デフォルトの名無しさん[sage]   投稿日:2015/12/27 14:47:35  ID:kNkpHWWg.net
知らないうちにコードが再帰化してハマりました
のほうが多そう

395
デフォルトの名無しさん[]   投稿日:2015/12/27 15:00:09  ID:9aquywWv.net(33)
>393
主語がわからん
コメント1件

396
デフォルトの名無しさん[sage]   投稿日:2015/12/27 15:03:49  ID:BwztOoZh.net(8)
>395
バグが増える要因はプログラミングソースのステップ数や可読性に左右されるのであって、アルゴリズムは特に関係ないということ
コメント1件

397
デフォルトの名無しさん[]   投稿日:2015/12/27 15:06:51  ID:9aquywWv.net(33)
>396
アルゴリズムによってステップ数や可読性は変わるよ

398
デフォルトの名無しさん[]   投稿日:2015/12/27 16:29:32  ID:hwv/tSGM.net(8)
>388
LinuxもFreeBSDも木全体に対して何らかの操作を行うインターフェースを実装してないからあたりまえ。

どっかで見たことある気がしたので探してみたらunbound
http://code.metager.de/source/xref/freebsd/contrib/unbound/util/rbtr...

また一つ、再帰否定バカが無知のエビデンス(笑)を積み重ねていく
コメント3件

399
デフォルトの名無しさん[]   投稿日:2015/12/27 16:32:53  ID:9aquywWv.net(33)
>398
知らない人がいたから言っただけだよ。
ループで実装されてるんだよーって。
インターフェースを実装してないからとか理屈付けする意味あるのかな。
バカはお前。
コメント1件

400
デフォルトの名無しさん[]   投稿日:2015/12/27 16:47:04  ID:9aquywWv.net(33)
インターフェース?
再帰と関係あるのかな?
わからん。この世はわからんことだらけだ。

401
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:00:20  ID:GUkoCLfr.net
> LinuxもFreeBSDも木全体に対して何らかの操作を行うインターフェースを実装してない


OSが…インタフェースを…実装?
コメント2件

402
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:01:14  ID:Zmrinoji.net(40)
>399
ねぇねぇ
そのループで実装されてる>398のコードでも
自前でスタック管理してる訳じゃ無い。
とすると、>379に対する突っ込みとしては>388変じゃない?
コメント2件

403
デフォルトの名無しさん[]   投稿日:2015/12/27 17:03:04  ID:9aquywWv.net(33)
>402
スタック管理の解釈次第だね。>388が変だと結論できる解釈もありだね。
コメント3件

404
デフォルトの名無しさん[]   投稿日:2015/12/27 17:03:49  ID:9aquywWv.net(33)
>401
わけわからんよね。

405
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:04:55  ID:Zmrinoji.net(40)
>403
ほう、つまり君はただのループをスタック管理と解釈する訳だね?
コメント2件

406
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:05:12  ID:X/TfzIFq.net
最近、書き込みが多くなって
このスレの勢いがすごい
コメント1件

407
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:07:35  ID:Zmrinoji.net(40)
>406
確かに。
>256から数えて、1日半で150も伸びてる。

408
デフォルトの名無しさん[]   投稿日:2015/12/27 17:18:58  ID:9aquywWv.net(33)
>405
再帰をループに置き換えるときには
再帰で暗黙的に管理されるスタック上の情報を
明示的に管理する必要がある。それをやるのは面倒だから
赤黒木は再帰で実装されているはずだというのが>379に関する俺の解釈。
面倒なことないよ、現に赤黒木はループで実装されることが多いよっていうのが>388
コメント2件

409
デフォルトの名無しさん[]   投稿日:2015/12/27 17:21:03  ID:9aquywWv.net(33)
語句の解釈に文句つけるのはあまり建設的じゃないような・・・。
その先には何もないような・・・。

410
デフォルトの名無しさん[]   投稿日:2015/12/27 17:24:39  ID:9aquywWv.net(33)
クイックソートについても再帰のスタックをそのまま
ループで再現するっていうのはどうかと思うなあ。
末尾再帰は単純なループに変換できる。ループで書くならループらしい書き方をするべき。
コメント1件

411
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:26:57  ID:Zmrinoji.net(40)
>408
ふーむ。

複雑な再帰構造を持つ場合、例えば再帰下降構文解析器みたいに複雑な相互再帰をする場合には
クイックソートの時のように簡単に再帰をループで置き換えることは出来ない。
そして一般に再帰をループで置き換えるならスタックが必要で、
込み入った再帰をスタックを使ってでもループに置き換える奴は居ないだろう。
現に赤黒木をスタック管理をしてでも強引にループで書き直すようなアホは居ないんじゃないの?
というのが>379に関するこっちの解釈。
それに対し、いやいや赤黒木はループで実装してるんだぜ!ってのが>388の俺の解釈。
話が噛み合って無くね?ってのが>402

日本語の問題な気も
コメント1件

412
デフォルトの名無しさん[]   投稿日:2015/12/27 17:28:09  ID:9aquywWv.net(33)
>411
解釈が違うのなら話が噛み合わないことについては筋が通るかと。
コメント1件

413
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:29:32  ID:Zmrinoji.net(40)
>410
そもそもクイックソートは分割統治法の典型例だからなぁ。
自分を2度呼び出す時点で末尾再帰的じゃないし
ループらしい書き方をするとクイックソートとは呼べないシロモノになると思う
コメント1件

414
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:30:37  ID:Zmrinoji.net(40)
あ、勿論クイックソートをもっと単純なループで書き直せるってんなら歓迎するよ!

415
デフォルトの名無しさん[]   投稿日:2015/12/27 17:33:05  ID:9aquywWv.net(33)
>413
一方の再帰呼び出しは末尾再帰になるっしょ。ループに置換できる。
コメント1件

416
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:33:09  ID:Zmrinoji.net(40)
>412
複数の解釈の仕方がありうるなら、
オレオレ解釈を元に相手をこき下ろす前にやることがあるだろうと
コメント1件

417
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:34:13  ID:Zmrinoji.net(40)
>415
・・・・・・それは依然として再帰関数と呼ぶのでは?
コメント1件

418
デフォルトの名無しさん[]   投稿日:2015/12/27 17:37:56  ID:9aquywWv.net(33)
>416
僕とー君とーは解釈が違うよねってことだよ。
こき下ろすべきじゃないと思うのは君の勝手ー。
こき下ろすのも僕の勝手ー。
ヒューマニズム振りかざす人大嫌いー。←これ僕
コメント1件

419
デフォルトの名無しさん[]   投稿日:2015/12/27 17:39:20  ID:9aquywWv.net(33)
>417
ループを書く場合、一方の再帰呼び出しは末尾再帰だから
単純なループに置き換えられるよねってことだから、もはや再帰関数とは呼ばないよ。
コメント2件

420
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:42:10  ID:Zmrinoji.net(40)
>418
いや、君が>403で言ったのは「スタック管理」の解釈の違いだろ?
「赤黒木が再帰で書かれてる」等とは一言も言ってない>379を読んだ君が>408みたいな解釈をして、
人のことをテロリスト呼ばわりするのってどうなの?
コメント1件

421
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:43:59  ID:Zmrinoji.net(40)
>419
https://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0
「再帰とは、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。」

ループを含む関数は再帰関数にはなれないの?
そんなことはないと思うんだけど。
コメント1件

422
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:46:46  ID:YWwZOVBb.net(2)
末尾再帰を勘違いしている人がいるので説明しておこう。

末尾再帰は「再帰を末尾再帰で書けば速くなる」というものではなくて
(単純な)ループを何らかの理由で再帰の形にしないといけない時、
末尾再帰の条件を満たすように、ループを再帰に変換すると
コンパイラが再帰をループに逆変換してくれる機能


なので、再帰を全て末尾再帰にできるわけではなく
(末尾再帰にできるのは、元が単純なループの場合のみ)
また、ループ ─(人間)→ 再帰 ─(コンパイラ) → ループ
というふうに、ループに戻しているだけなのでループより速くなることはない。
コメント6件

423
デフォルトの名無しさん[]   投稿日:2015/12/27 17:47:27  ID:hwv/tSGM.net(8)
>401,404
FreeBSDのrbtreeもLinuxのrbtreeもそういうインターフェースを実装していないって事だよ。
コメント1件

424
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:54:40  ID:Zmrinoji.net(40)
>422
より正確には、「再帰全てをノーコストで末尾再帰にできるわけではなく」かな。
関数がファーストクラスならCPSに変換すれば末尾再帰の形にはなる。
・・・・・・ヒープガリゴリ使うし、スタックを自前で持つのと変わらんけど。
コメント1件

425
デフォルトの名無しさん[]   投稿日:2015/12/27 17:56:45  ID:9aquywWv.net(33)
>420
>379は「赤黒木が再帰で書かれてる」とは一言も言ってないけれども、
「赤黒木の操作を自前でスタック管理するアホはいない」と言っているのだから
赤黒木の操作は、自前でスタック管理しないやり方、つまり再帰で実装される
と思っているという解釈は妥当だと思ってる。悪いけど、この解釈については譲歩するつもりはないよ。
120%君が間違っているし、再帰を使う人は120%テロリスト。それでいいね?
コメント1件

426
デフォルトの名無しさん[sage]   投稿日:2015/12/27 17:58:29  ID:YWwZOVBb.net(2)
>424
速くするための末尾再帰なのに、
逆に遅くなったら本末転倒だよなw

427
デフォルトの名無しさん[]   投稿日:2015/12/27 18:00:45  ID:9aquywWv.net(33)
>421
無理。再帰を使うなら全部再帰で書くべき。
ループを使う処理では再帰を書かない。
再帰を使う処理ではループを書かない。
それで初めてループと再帰の決着がつけられる。
そしてループが勝利する。
コメント1件

428
デフォルトの名無しさん[sage]   投稿日:2015/12/27 18:01:48  ID:Zmrinoji.net(40)
>425
確率が1を超えてるとか、幼稚園に迷い込んだ気分だよ。

「赤黒木の操作を自前でスタック管理するアホはいない」と言っている以上、
赤黒木の操作は、スタックなんてものをそもそも自分で触らないようなやり方、
つまり再帰か、又は上手なループで実装されているって話だろ?
フィボナッチ数を計算する関数をスタックを使わずに書いたって言った時、君は再帰の方しか思い浮かべられないのかい?
もしかして自閉症患者かい?
コメント1件

429
デフォルトの名無しさん[sage]   投稿日:2015/12/27 18:04:52  ID:Zmrinoji.net(40)
>427
それじゃぁ各ノードに可変個の子要素を持つ多分木を列挙するコードは
どうやって書くつもり?
for (auto it : children) {
 if (it->is_leaf()) {
printf("%d ", it->value);
} else {
it->print_values();
}
}
コメント4件

430
デフォルトの名無しさん[]   投稿日:2015/12/27 18:11:29  ID:9aquywWv.net(33)
>428
>389を見るに、そうじゃないと思うんだがなあ。
俺は自閉症患者だけれども、それとこれとは関係ない。
お前は全国の自閉症患者やそのご家族の方に謝罪するべき。
あとテロリストにも。
コメント1件

431
デフォルトの名無しさん[]   投稿日:2015/12/27 18:15:49  ID:9aquywWv.net(33)
>429
どうやってって何がだよ?
ループでか?再帰でか?
コメント2件

432
デフォルトの名無しさん[sage]   投稿日:2015/12/27 18:18:05  ID:Zmrinoji.net(40)
>430
日本語って難しいよね。分かる分かる。
>389の解釈は、
再帰でも書けるところをループで書いたんだ。へぇ。バグってなくて良かったね。ご苦労さん。
じゃないの?
>379が再帰を仮定しているかどうかとは別問題。

俺も自閉症患者だけどね。自分に謝るのって変な感じがするよ。
コメント1件

433
デフォルトの名無しさん[sage]   投稿日:2015/12/27 18:18:46  ID:Zmrinoji.net(40)
>431
どっちでも良いけど、どっちかしか「使ってはならない」というローカルルールの元ではどう書くの?

434
デフォルトの名無しさん[sage]   投稿日:2015/12/27 18:47:59  ID:Zmrinoji.net(40)
>431
まだ出来ないの?
>429に7行で書いたような、こんなコードが走ります的な切れ端で十分伝わるんだよ?
コメント1件

435
デフォルトの名無しさん[]   投稿日:2015/12/27 18:53:56  ID:9aquywWv.net(33)
>432
スタックで管理の解釈の違いだな。やっぱり噛み合わない。
コメント1件

436
デフォルトの名無しさん[]   投稿日:2015/12/27 18:57:04  ID:9aquywWv.net(33)
>434
あのさ、同意も取らずに強引に物事を進めようとするのってどうかと思うよ。
北風と太陽って話くらい知ってるでしょ?コンセンサスってとても大事。
お前コンセントしか知らないだろ。扇風機の線をぶち込んどけば何とかなるものと
しか思ってないだろ。それじゃないからな。
まずは、どういう理由で書いてほしいのかっていうところと
それによって何が成し遂げられるのかっていうところとどうして自分で
やらないのかって言うところを説明して、心からお願いしないと俺の不動の心は動かないよ。
コメント1件

437
デフォルトの名無しさん[sage]   投稿日:2015/12/27 19:08:44  ID:Zmrinoji.net(40)
>435
残念。

>436
ループを含む関数が再帰関数になれないのであれば、
>429のような書き方は認めないって事だよね?
君ならどう書くの?って聞いただけなのになんでそんな反応になるのかね?
コメント1件

438
デフォルトの名無しさん[sage]   投稿日:2015/12/27 19:10:20  ID:/NTMuKoN.net
横道にそれ過ぎずに、それぞれの論旨を書いてみろよ。
中傷合戦ひどくてわからん。
コメント2件

439
デフォルトの名無しさん[]   投稿日:2015/12/27 19:12:29  ID:9aquywWv.net(33)
>437
ループと再帰の優劣をつける場合、ループはループだけで
再帰は再帰だけで実装するべきだよねって話をしただけだよ。
お話の前提をすり替えてあたかもお話が続いているように
するのはよろしくないと思うんだよな。

440
デフォルトの名無しさん[]   投稿日:2015/12/27 19:13:53  ID:9aquywWv.net(33)
>438
俺は畑を耕していただけなんだ。そしたら ID:Zmrinoji こいつが
機関銃もって脅してきたんだ。おらはイモが食いたいだけだ。再帰使うやつはテロリストだ。
恐ろしいことだ。
コメント1件

441
デフォルトの名無しさん[sage]   投稿日:2015/12/27 19:14:42  ID:Zmrinoji.net(40)
>438
大本の論旨としては、人のことをテロリスト呼ばわりするのってどうなん?って事なんだけど。

ループと再帰の優劣をつけるなんてどこから出てきた?
コメント1件

442
デフォルトの名無しさん[]   投稿日:2015/12/27 19:19:02  ID:9aquywWv.net(33)
>441
テロリストと呼ばれるのが嫌ならテロ行為やらなければいいだろ。
クイックソートでやってただろ。ループがいいか、再帰がいいかって。それのこと。
知らなかったの?じゃあ知って。今知って。

443
デフォルトの名無しさん[]   投稿日:2015/12/27 19:19:34  ID:Rer1VVak.net(7)
バッファオーバーフロー攻撃を成功させるためには、再帰が最も都合よい。
コメント1件

444
デフォルトの名無しさん[]   投稿日:2015/12/27 19:26:07  ID:Rer1VVak.net(7)
攻撃されるのと攻撃するのと、どちらが良いか?
当然、攻撃する方が良い。

つまりテロリストは勝ち組なのである。

当該スレにおいて再帰を推奨している人は勝ち組である。
なぜなら危険物を推奨するのは攻撃側だからである。

445
デフォルトの名無しさん[]   投稿日:2015/12/27 19:30:06  ID:9aquywWv.net(33)
>443
そういうことだな。昨今、関数型言語の流行に伴って再帰がすぐれたものであると
思い込んだニワカのペーペーどもがろくな知識も持たずに危険なコードを
書きまくって悦に入ってる姿を見ると暗い気持ちになる。再帰というのは
ループに大敗北した歴史を持つものだっていうのを知って欲しい。
for whileというのは再帰の進化形。メガ進化。

446
デフォルトの名無しさん[]   投稿日:2015/12/27 19:33:08  ID:Rer1VVak.net(7)
お前ら逮捕されても知らんぞ。

公共の場所で再帰を勧めたりしてたら、そのうち警察が事情を聴きに来るぞ。

447
デフォルトの名無しさん[sage]   投稿日:2015/12/27 19:40:05  ID:Zmrinoji.net(40)
どうでも良いけど、再帰がテロ行為になるなんて初耳だなぁ

# 今日の夕飯はすき焼きでした
コメント1件

448
デフォルトの名無しさん[]   投稿日:2015/12/27 19:43:06  ID:Rer1VVak.net(7)
>447
自動車の256バイトしかないRAMで再帰したら、バシバシ轢き殺すぞ。
そこまでやってこそ本物のテロリストだろ。
コメント1件

449
デフォルトの名無しさん[sage]   投稿日:2015/12/27 19:49:26  ID:Zmrinoji.net(40)
>448
誰がそこまで特殊でオンボロな例を挙げろと

ちなみにテロリストの定義はテロリズムを奉ずる人で、
テロリズムの定義は
https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%AD%E3%83%AA%E3%82%BA%E3%...#.E5.9B.BD.E9.9A.9B.E9.80.A3.E5.90.88
「住民を威嚇する、または政府や国際組織を強制する、あるいは行動を自制させる目的で、
市民や非戦闘員に対して殺害または重大な身体的危害を引き起こす事を意図したあらゆる行動」
だそうですよ。

あと自動車の場合、バシバシ轢き殺すなんて事態にはならず、単にエンストするだけだと思うの。
フェイルセーフって知ってるよね?

450
デフォルトの名無しさん[sage]   投稿日:2015/12/27 19:55:14  ID:Zmrinoji.net(40)
>440
> 俺は畑を耕していただけなんだ。そしたら ID:Zmrinoji こいつが
> 機関銃もって脅してきたんだ。おらはイモが食いたいだけだ。再帰使うやつはテロリストだ。
俺の知ってる事実と違うね。

俺は今日は364から話を始めた。そこにID:9aquywWvが388から割り込んできて、
人のことをやれテロリストだやれ機関銃をもって脅してきただ喚いてるの。
コメント2件

451
デフォルトの名無しさん[]   投稿日:2015/12/27 20:01:43  ID:Rer1VVak.net(7)
>450
テロリストは自分のことをテロリストだと思っていないんだよな。
聖戦士だと思ってる。
正義のために再帰を仕込むんだよな。

まあでも、国民側から見ればテロリストなんだけどな。

452
デフォルトの名無しさん[]   投稿日:2015/12/27 20:02:57  ID:Rer1VVak.net(7)
再帰なんてある意味爆弾みたいなものだしな。
テロリストが使う新型爆弾なんじゃねーかな。

453
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:07:24  ID:Zmrinoji.net(40)
そうやって正義の為にループを仕込むんだね?
よく分かったよ!

ちなみにバッファオーバーフローの攻撃手法としては再帰は下の下だからな。
getsなんかを使った方がよっぽど手っ取り早い上に任意コード実行まで出来る。

454
デフォルトの名無しさん[]   投稿日:2015/12/27 20:08:29  ID:9aquywWv.net(33)
>450
聞かれたから答えてたけど、>388は君に対するレスじゃないよ。
コメント1件

455
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:10:16  ID:Zmrinoji.net(40)
>454
知ってるよ?
でも再帰使うやつはテロリスト発言で敵を増やしてないかい?
コメント1件

456
デフォルトの名無しさん[]   投稿日:2015/12/27 20:12:06  ID:9aquywWv.net(33)
>455
割り込んでないよね。テロリストと糾弾されて君が勝手にファビョッただけだよね。
僕は畑耕してただけ。
コメント1件

457
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:15:26  ID:Zmrinoji.net(40)
>456
文脈をよく読もう。
364から始まる再帰とループに関する話に混ざった379に君が割り込んでるね?
コメント2件

458
デフォルトの名無しさん[]   投稿日:2015/12/27 20:17:05  ID:Rer1VVak.net(7)
>457
アッラーアクバル。
コメント1件

459
デフォルトの名無しさん[]   投稿日:2015/12/27 20:17:12  ID:TQTcd7lL.net(2)
テロリスト(笑)
アホかな?

460
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:17:29  ID:TlhMnrM9.net(2)
お前らなんでそんな盛り上がってんだ?
コメント1件

461
デフォルトの名無しさん[]   投稿日:2015/12/27 20:17:55  ID:9aquywWv.net(33)
>457
割り込んでないね。僕は>379に話しかけただけだね。
君が>379とお話したかったのなら>379に話しかけるべきだね。
コメント1件

462
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:18:53  ID:Zmrinoji.net(40)
>458
そうだね、偉大だね。
スプンタ・マンユに祈りを!(宗教ちげぇ)

463
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:25:14  ID:Zmrinoji.net(40)
>460
いわゆる暇人という奴では。

>461
木構造って知ってる?

あと、俺はそのレス(>379)にその返し(>388)って変じゃね?って言っただけで、
それに対して君が「スタックの管理とは」なんて話を始めるから(>403)
そのコード(>398)の何処にスタックなんて使われてるんですか―って訊いて(>405)
それに対してまだ答えが返ってきてないんだけど。
君はあれかな、都合の悪い質問は見なかったことにする人なのかな。
コメント1件

464
デフォルトの名無しさん[]   投稿日:2015/12/27 20:29:09  ID:9aquywWv.net(33)
>463
なんで僕にレスしてくるの?
自分が話したいことがあるならそれを話せばいいじゃん。

僕は僕で自分の話したい話を話したい人とするから。
たまたま>379だったってだけで君が>379と話したいなら
僕はそれを否定しないよ。割り込まれたとも思わない。

ほら話しかけろよ。>379も絶対お前のこと好きだって。
言っちゃえよ。好きだって言っちゃえよ!
コメント1件

465
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:29:57  ID:Zmrinoji.net(40)
>464
暇潰しに最適なので大好きです
コメント1件

466
デフォルトの名無しさん[]   投稿日:2015/12/27 20:31:26  ID:9aquywWv.net(33)
>465
僕もだよ
コメント1件

467
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:32:45  ID:Zmrinoji.net(40)
>466
それで、人のことをテロリスト呼ばわりするのってどうなん?
コメント1件

468
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:33:29  ID:5UZSmdOE.net
ID:Zmrinoji必死だなw

469
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:34:10  ID:Zmrinoji.net(40)

470
デフォルトの名無しさん[]   投稿日:2015/12/27 20:36:11  ID:9aquywWv.net(33)
>467
違うんだ、待ってくれ、君のことをテロリストと言ったんじゃない。
再帰を使う人はテロリストなんだ。君じゃない。
コメント1件

471
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:37:37  ID:Zmrinoji.net(40)
>470
つまり、>469で示したように再帰を使う俺はどっち?
コメント1件

472
デフォルトの名無しさん[]   投稿日:2015/12/27 20:39:37  ID:9aquywWv.net(33)
>471
では準構成員ということでここはひとつ
コメント1件

473
デフォルトの名無しさん[sage]   投稿日:2015/12/27 20:40:19  ID:Zmrinoji.net(40)
>472
笑ったから良いやww

474
デフォルトの名無しさん[sage]   投稿日:2015/12/27 23:12:05  ID:P4P/t2xP.net
お前ら仲良いな

475
デフォルトの名無しさん[sage]   投稿日:2015/12/28 00:41:11  ID:cpjqbiy5.net
やっぱり再帰無しでループによるプログラミングが最高だね!

476
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/28 02:41:10  ID:/Vjc/SbZ.net

477
デフォルトの名無しさん[sage]   投稿日:2015/12/28 07:13:10  ID:N+qRD9W4.net
uy
品が無さすぎ。

478
デフォルトの名無しさん[sage]   投稿日:2015/12/28 08:54:56  ID:i05gjBFH.net(2)

479
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/28 14:13:49  ID:FI1ndW8l.net(2)
私生活において自分ほど品性の高い奴はそうそういないよ
何をしていてもカリスマ性があふれ出してしまう

480
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/28 14:17:04  ID:FI1ndW8l.net(2)
「しね」というのは、実は奥の深い言葉なんだけど知っていましたか?
プログラム中でいえばNULLと似ている

人はなぜ生きるのか、なぜ死なないのか、
その真理を見つける事は誰も出来ていない
よって「死」とは恐怖かもしれないし、救いかもしれない
つまり正解でも不正解でも無い
それゆえに「しね」という言葉を発しても、敵と味方は最終的に五分にしかならない意味のない言葉なんです
だから頻繁に使っていくと良いよ
コメント1件

481
デフォルトの名無しさん[sage]   投稿日:2015/12/28 14:30:10  ID:i05gjBFH.net(2)
アスペが語りだしたと聞いて

482
デフォルトの名無しさん[]   投稿日:2015/12/28 14:59:07  ID:kIejf3VS.net
>480
しね

483
デフォルトの名無しさん[sage]   投稿日:2015/12/28 17:06:38  ID:6k5OwRcO.net
再帰じゃないと書いてらんない関数があるのも事実

484
デフォルトの名無しさん[sage]   投稿日:2015/12/29 05:12:44  ID:GnldGbIR.net(3)
>419
アホはしね

485
デフォルトの名無しさん[sage]   投稿日:2015/12/29 05:14:17  ID:GnldGbIR.net(3)
>422
tail callも知らんのかよw
コメント1件

486
デフォルトの名無しさん[sage]   投稿日:2015/12/29 05:16:02  ID:GnldGbIR.net(3)
>423
インターフェースとか抽象データ型ってことを理解できてないから、
そう言っただけでは理解できないんだと思うよ。

487
デフォルトの名無しさん[]   投稿日:2015/12/29 16:41:59  ID:+ubDtqOv.net
>429
でけたやでー
https://ideone.com/hykdXg

488
デフォルトの名無しさん[sage]   投稿日:2015/12/29 20:37:04  ID:mZCjkrMY.net
>485
お前のほうが分かっていないような気がするが‥

489
デフォルトの名無しさん[sage]   投稿日:2015/12/29 22:38:58  ID:tgd/4Yaw.net
>422の「なので、再帰を全て末尾再帰にできるわけではなく」とか恥ずかしいよなw
コメント1件

490
デフォルトの名無しさん[sage]   投稿日:2015/12/30 07:30:40  ID:hgJXqSbV.net(3)
>489
>422 「再帰を全て末尾再帰にできるわけではな」いのは当然だが,どうしてはずかしいんだ?
コメント1件

491
デフォルトの名無しさん[]   投稿日:2015/12/30 16:36:10  ID:GbTfiPvb.net
> コンパイラが再帰をループに逆変換してくれる機能
恥ずかしい発言はこれだね。
コメント2件

492
デフォルトの名無しさん[sage]   投稿日:2015/12/30 17:06:15  ID:JfqdTNxj.net(2)
>491
その理由を言わないとw
コメント1件

493
デフォルトの名無しさん[]   投稿日:2015/12/30 17:07:27  ID:WCUOMmTt.net(4)
掲示板ではレベルのミスマッチがよくあるんだよな。

たとえば、アセンブリと機械語は一対一で対応していると純粋に信じてる人は世の中に結構多い。
そういう人たちとプロセッサのデザイナが掲示板で議論すると当然ミスマッチが起こる。
こういう場合、当然勢力の面でデザイナの方が分が悪くなるね。
世の中、知ったかぶりのバカの方が多いから。

494
デフォルトの名無しさん[sage]   投稿日:2015/12/30 17:08:24  ID:JfqdTNxj.net(2)
手動で末尾最適化をしてみればいいんだよ。

そうすれば、なるほど、
これが最適化されたコードなんだな!って
ループになったコードを目の当たりにすることになる。

495
uy ◆Qawu9.2l1E [sage]   投稿日:2015/12/30 17:28:38  ID:hD2EQx+W.net
そういう周りくどい事やってるうちは三流
uyの領域に到達すると文章読むだけで理解する

496
デフォルトの名無しさん[sage]   投稿日:2015/12/30 17:39:40  ID:hgJXqSbV.net(3)
>491
コンパイラが再帰をループにしてくれる機能はあるよ,恥ずかしいのはどちら?
コメント2件

497
デフォルトの名無しさん[]   投稿日:2015/12/30 18:05:13  ID:WCUOMmTt.net(4)
再帰の方が有利なら、わざわざループに変換するなよ。
むしろ、ループを自動的に再帰に変換しろよ。

498
デフォルトの名無しさん[sage]   投稿日:2015/12/30 18:08:15  ID:Y9esFwyM.net(2)
>492
逆変換が意味不明
単に変換なら同意するけど
コメント1件

499
デフォルトの名無しさん[]   投稿日:2015/12/30 18:35:57  ID:WCUOMmTt.net(4)
テロリストは逮捕されろよ。

500
デフォルトの名無しさん[sage]   投稿日:2015/12/30 18:45:12  ID:o3pJDHAa.net
再帰が実用的でなく
ループの方が有利だから
変換しないといけない。

501
デフォルトの名無しさん[sage]   投稿日:2015/12/30 18:47:59  ID:hgJXqSbV.net(3)
>498
それは文脈による,よく逆電圧っていうが実は順電圧だったりすることはあるし
コメント1件

502
デフォルトの名無しさん[sage]   投稿日:2015/12/30 19:10:36  ID:Y9esFwyM.net(2)
>501
> それは文脈による,

だからこの文脈だと意味不明って言ってるんだが

> よく逆電圧っていうが実は順電圧だったりすることはあるし

ますます意味不明
コメント1件

503
デフォルトの名無しさん[]   投稿日:2015/12/30 19:20:03  ID:pyiqU+eC.net
>502
この分からず屋!!

504
デフォルトの名無しさん[sage]   投稿日:2015/12/30 21:43:44  ID:c5JPL3VW.net
分かるように説明できないんじゃ周りは皆分からず屋に見えてしまうね

505
デフォルトの名無しさん[]   投稿日:2015/12/30 21:56:06  ID:WCUOMmTt.net(4)
我々市民はテロリストを納得させるような言葉を持たない。
従って、テロリスト自ら変わらない限り、テロリストは永遠に市民の敵である。

506
デフォルトの名無しさん[]   投稿日:2015/12/31 01:15:35  ID:+JFM0ZYm.net(6)
>496
キミの方だとおもうよ。ぷぷぷ。
「末尾再帰は... コンパイラが再帰をループに変換してくれる機能」

> 末尾再帰は「再帰を末尾再帰で書けば速くなる」というものではなくて
> (単純な)ループを何らかの理由で再帰の形にしないといけない時、
> 末尾再帰の条件を満たすように、ループを再帰に変換すると
> コンパイラが再帰をループに逆変換してくれる機能

507
デフォルトの名無しさん[]   投稿日:2015/12/31 01:18:23  ID:+JFM0ZYm.net(6)
>496
それは、「末尾再帰最適化」というコンパイラの機能だね。
コメント1件

508
デフォルトの名無しさん[]   投稿日:2015/12/31 01:21:18  ID:+JFM0ZYm.net(6)
「ループを再帰に変換すると、コンパイラが再帰をループに逆変換してくれる」
頭沸いてるだろ。ぷぷぷ。最初からループで書いとけよ。

509
デフォルトの名無しさん[]   投稿日:2015/12/31 02:10:00  ID:RPyreEna.net
そんなんじゃ小説なんか読めないだろう。
読解力なさすぎだよ。

510
デフォルトの名無しさん[]   投稿日:2015/12/31 02:17:21  ID:+JFM0ZYm.net(6)
読解力が足りないとか言いだしたぞ。このバカ。

> ループを再帰に変換すると、コンパイラが再帰をループに逆変換してくれる機能
コメント1件

511
デフォルトの名無しさん[sage]   投稿日:2015/12/31 02:26:21  ID:Rb2meO2K.net(2)
>490
再帰はすべて機械的に末尾再帰に変換できる。
そんな基本的なことも知らないのは恥ずかしいだろう?

512
デフォルトの名無しさん[]   投稿日:2015/12/31 02:32:06  ID:+JFM0ZYm.net(6)
おー、すげー。天才現る。
これで、スタックオーバーフロー完全克服だ。

513
デフォルトの名無しさん[]   投稿日:2015/12/31 02:52:07  ID:cXVC2Dha.net
末尾再帰に変換できるとは言ったが,スタックオーバーフローを回避できるとは言ってない(キリッ

514
デフォルトの名無しさん[]   投稿日:2015/12/31 03:04:20  ID:+JFM0ZYm.net(6)
クイックソート10000倍高速化とか再帰→末尾再帰の自動変換とか、このスレには天才が多いな。

515
デフォルトの名無しさん[sage]   投稿日:2015/12/31 07:33:29  ID:Rb2meO2K.net(2)
CPS変換も知らんのか…
コメント1件

516
デフォルトの名無しさん[]   投稿日:2015/12/31 09:52:41  ID:tmojp+ig.net
>510
俺は第三者だ。
俺は書き込んだ奴の言いたいことが容易に把握できている。
それがキミにはできないという。

再帰についてのスレで再帰について書かれているのだから、バックボーンの違いではないだろう。
知識ではなく読解力の問題だ。
こんなもん小学生でも意味をくみ取るぞ。
コメント1件

517
デフォルトの名無しさん[]   投稿日:2016/01/01 00:50:07  ID:PlqvFYu0.net(5)
>516
>422を理解出来てるのか? こりゃすげーわ。
ループを再帰の形にするときに、ループを再帰に変換すると、再帰をループに逆変換してくれるコンパイラの機能が末尾再帰?

>422が末尾再帰を理解してない事が読み取れるだけだ。
それをお前が読み取れるという事は、同一人物以外あり得ない。

518
デフォルトの名無しさん[]   投稿日:2016/01/01 00:56:33  ID:XLbYQ9mF.net(2)
そんなんじゃ小説も読めないだろう。

末尾再帰とは、本来ループで書くべきものを再帰で書いた時にコンパイラが
自動でループに直す機能・・・という主張なのだろう。

519
デフォルトの名無しさん[]   投稿日:2016/01/01 00:57:41  ID:PlqvFYu0.net(5)
>515
よくいるんだわ。より難解な前提が必要なのに、出来るよって言い出す奴。
コメント1件

520
デフォルトの名無しさん[]   投稿日:2016/01/01 00:57:43  ID:XLbYQ9mF.net(2)
逆変換という言葉は、そういった前提があって出てくる言葉だと思うぞ。
コメント1件

521
デフォルトの名無しさん[sage]   投稿日:2016/01/01 02:37:45  ID:mIgzxpKK.net
コンパイラが最適化してくれるならコンパイラにやらせるのが普通の話だよね
コメント1件

522
デフォルトの名無しさん[sage]   投稿日:2016/01/01 08:22:45  ID:xWjlSole.net
>521
ループの方が最適化効きやすいしな。

523
デフォルトの名無しさん[]   投稿日:2016/01/01 08:28:26  ID:PlqvFYu0.net(5)
>520
末尾再帰の説明に「逆変換」を使うってどういう前提だよ www
コメント1件

524
デフォルトの名無しさん[]   投稿日:2016/01/01 10:18:04  ID:TPZeTHW+.net(2)
>523
本来ループであるべきものをプログラマが再帰に変換しているので、
コンパイラがループに逆変換するという主張なのだろう。

お前、本当にこの程度の文章が読めないの?
そんなんじゃ小説どころか論文も読めないだろう。

俺は元の文すら読んでいなく、引用されてるのを見てそこまで理解できてるぞ。
もう一度聞くけど、お前本当にこの程度の文が読めないの?
コメント1件

525
デフォルトの名無しさん[sage]   投稿日:2016/01/01 11:36:06  ID:wTuRpENh.net
> インバータ(Inverter)とは、
> 直流電力から交流電力を電気的に生成する(逆変換する)電源回路、
> またはその回路を持つ電力変換装置のことである。
> 逆変換回路(ぎゃくへんかんかいろ)、逆変換装置(ぎゃくへんかんそうち)などとも呼ばれる。

逆変換w

526
デフォルトの名無しさん[sage]   投稿日:2016/01/01 12:12:39  ID:D046Nv8F.net
>519
>よくいるんだわ。より難解な前提が必要なのに、出来るよって言い出す奴。

何言ってんだこいつ
コメント1件

527
デフォルトの名無しさん[]   投稿日:2016/01/01 15:45:58  ID:PlqvFYu0.net(5)
>524
おおー、スゲー
その調子で>422を解説してくれや。

528
デフォルトの名無しさん[]   投稿日:2016/01/01 15:48:40  ID:PlqvFYu0.net(5)
>526
読解力が、足りない。

半端な知識を振り回す知ったかぶりが沢山いるという事だよ。
コメント1件

529
デフォルトの名無しさん[]   投稿日:2016/01/01 16:18:10  ID:TPZeTHW+.net(2)
>528
それは読解力関係ないだろう。
俺にも全く意味が分からなかった。
何言ってんだコイツ?というのが素直な感想。

530
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/01 19:46:32  ID:FqzQpFZg.net
健全でない言葉が含まれているため表示しません 内容を確認する
コメント1件

531
デフォルトの名無しさん[sage]   投稿日:2016/01/01 19:53:29  ID:BqDq7bML.net
>530
そりゃrubyだからさ
コメント2件

532
デフォルトの名無しさん[]   投稿日:2016/01/01 20:37:19  ID:KnWw4/o3.net
今年もrubyのオワコン芸w

533
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/02 03:28:12  ID:cdXNgg3P.net
>531-532
本当に頭悪いカスだな
rubyに限定せず実装出来ると思うけど技量的に理解すら無理な感じ?
再帰とループの変換や末尾再帰の話題には触れてもここはTCOという単語が今まで一回も出てこないという事実

「知ってる側」からすると嘘をついてるのがすぐにわかってしまう
知ったかぶりのクズ
コメント2件

534
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/02 03:30:31  ID:cqMsfgi2.net
健全でない言葉が含まれているため表示しません 内容を確認する

535
デフォルトの名無しさん[sage]   投稿日:2016/01/02 09:53:52  ID:QH+c5K8j.net(2)
>533
だって末尾再帰なんてlisp/schemeでは当たり前だもの,今はgccでも当たり前だし
いまさらrubyですかね‥

536
デフォルトの名無しさん[sage]   投稿日:2016/01/02 13:32:29  ID:3O/U03ws.net
むしろ自分でやんないと末尾呼び最適化が利かない処理系って(ry

537
デフォルトの名無しさん[sage]   投稿日:2016/01/02 15:04:15  ID:QH+c5K8j.net(2)
なんだか遅れてるんだよねruby屋さんって

538
デフォルトの名無しさん[sage]   投稿日:2016/01/02 15:39:39  ID:TZBdz3NA.net
rubyだからね。仕方ないね。

539
デフォルトの名無しさん[]   投稿日:2016/01/03 22:30:43  ID:F57MRPO3.net
>533
何度も出てるし「末尾再帰」といった時点でジャンプへの変換という意味を持っていってるんだよ。
最適化が無ければ「末尾」と特別な扱いをする意味が無い。
runyって最近言い出したのか。30年遅れてるな。

540
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/04 03:42:45  ID:XM/1Dr6r.net
健全でない言葉が含まれているため表示しません 内容を確認する
コメント1件

541
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/04 03:51:45  ID:wtRTZBq6.net
妥協点でPythonだからね
それ以下の言語でアルゴリズム語ってるスレ見ると
そこで話してる内容とか読む前に
まずはスレ民を学習させる事から初めて
レベルを上げてやらないと話にならない
コメント1件

542
デフォルトの名無しさん[sage]   投稿日:2016/01/04 04:13:44  ID:u97FRQbx.net(2)
>540
末尾再帰のループ最適化は >5>507 ですでに出てきているよ

>541
最適化の話題なら python や ruby のようなインタプリタではなく
コンパイラで比較するのが適切だね,インタプリタ上で速くなっても
だれもうれしくない.C/C++一択だよ
ま,fortran でもいいが
コメント1件

543
デフォルトの名無しさん[sage]   投稿日:2016/01/04 04:55:36  ID:WY8liDeA.net
再帰好きの人をサイキッカーと呼びたい

544
デフォルトの名無しさん[]   投稿日:2016/01/04 10:03:14  ID:hsfrcHKj.net
いいなそれ

545
デフォルトの名無しさん[]   投稿日:2016/01/04 12:27:00  ID:U406TFbL.net
再帰好きの人のを中二コーダーと呼びたい

546
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/04 15:06:50  ID:KNqXLa56.net(2)
>542
理解力なさすぎだな
お前の学校の担任はさぞかし苦労したことだろう
コメント1件

547
デフォルトの名無しさん[sage]   投稿日:2016/01/04 16:24:41  ID:u97FRQbx.net(2)
>546
どんな点をみて「理解力がない」と判断したのか?
説明できますかね,それとも吼えるだけ?

548
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 17:38:28  ID:7uWOp/tU.net(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:32  ID:7uWOp/tU.net(14)
pop,push逆だった
loopHoge2(a,n,arg...){
 while(a<n){
  popargstack();
  dobefore()...
  pushargstack();
  doafter()...
 }
}

550
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 18:00:09  ID:7uWOp/tU.net(14)
pushargstack();
popargstack();
ユーザー定義のこれらはめんどくさいから
再帰関数使ってコンパイラ任せにするよ

551
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/04 18:13:29  ID:zTvWipKl.net
またゴミカス初心者が来たけど
また1から説明して教育しなきゃいけないの?
コメント1件

552
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 18:16:50  ID:7uWOp/tU.net(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();
ユーザー定義のこれらはめんどくさいから、再帰関数使ってコンパイラ任せにするよ
たったこれだけの内容
コメント1件

553
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 18:19:28  ID:7uWOp/tU.net(14)
>551
>552
以上のことの何があるか説明してみてよ

554
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 18:42:48  ID:7uWOp/tU.net(14)
http://nas6.main.jp/Maze.cpp

再帰、ループ、等価迷路
コメント1件

555
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 18:55:15  ID:7uWOp/tU.net(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:49  ID:7uWOp/tU.net(14)
>554で、
ループ実装が好きなやつはいないと思うんだけどな

557
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/04 21:13:17  ID:KNqXLa56.net(2)
RubyかPythonで書き直して
C++とかいうゴミいらねーから

558
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 21:51:32  ID:7uWOp/tU.net(14)
「{C++規則をかなり抑えてCライク}で書かれたソースコード」
のクロスランゲッジなんて、ほぼ、ライブラリの関数名を書き換えるだけだろ

559
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 21:54:46  ID:7uWOp/tU.net(14)
あ、あと制御構文もちゃっちゃっと書き換えれば出来上がり
コメント1件

560
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/04 22:07:47  ID:mZvmD2Em.net
それをなぜ最初から簡潔な言語で書かないで
わざわざ冗長したC++・C言語といった言語でドヤァとソースコード貼りつけてくるのか、理解しがたいんだけど
カスレベルの初心者である事を数レスに渡る自己紹介でもしにきたのかね?
アルゴリズムの抽象化でC++とか使う奴はその時点で初心者だって一瞬で分かるって言ってるのに
自分が知恵遅れだと分かってないままの奴が続々現れるからこういう場所は話題がループする

561
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/04 22:08:20  ID:HCl/OTCR.net
健全でない言葉が含まれているため表示しません 内容を確認する

562
デフォルトの名無しさん[]   投稿日:2016/01/04 22:23:59  ID:JpzJLk3f.net
熱烈なC++アンチって速度要求される場面に出会ったことがないんだろな
もしくはフォートラン信者なんだろな

563
デフォルトの名無しさん[]   投稿日:2016/01/04 22:31:14  ID:OFaVtQHO.net(2)
オッパイソンはベーシックみたいなもんで非プログラマが使うのに適してるけど、
プログラマが使うには色々しょぼすぎ。
ペイントショッププロのマクロにオッパイソンが採用されたときは、来るかと思ったけど、
それを機に没落していった。
イヌックスの呪いは有名だけど、オッパイソンの呪いもあるのかもしれん。

564
デフォルトの名無しさん[]   投稿日:2016/01/04 22:35:24  ID:OFaVtQHO.net(2)
しかし、エクセルのマクロ使いはザラにいるのに、他のアプリはマクロ使いが
ほとんどいないんだよな。
イーマックソとか言うウンコは置いといて。
CADなんかマクロの使いであると思うのだが。
Autocadなんかウンコ使いが泣いて喜ぶLisp搭載してるのにな。
なんでだ。

565
デフォルトの名無しさん[sage]   投稿日:2016/01/04 22:55:58  ID:8iRyCi7U.net
とりあえずuyがほんとになにもわかってないことだけわかった

566
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 23:00:49  ID:7uWOp/tU.net(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:55  ID:7uWOp/tU.net(14)
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

568
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 23:07:46  ID:7uWOp/tU.net(14)
def recHoge2(term,arg...)
 dobefore(arg...)
 if term
  recHoge2(term,arg...)
 end
 doafter(arg...)
end

で、こんだけで済むのに、
ループにしたいからって
スタックのユーザー定義なんて馬鹿だろう
コメント1件

569
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/04 23:22:49  ID:7uWOp/tU.net(14)
再帰をループにしたかったら
こういうのをいちいち作らなきゃだめだよ
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
コメント1件

570
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/05 02:57:13  ID:/kPL7pQm.net
プログラミング半年目くらいだろうかコイツは
多く見積もって1年半
それ以上なら今すぐPC捨てたほうが良いレベル

571
デフォルトの名無しさん[]   投稿日:2016/01/05 02:58:35  ID:3cj4CitF.net

572
デフォルトの名無しさん[]   投稿日:2016/01/05 02:59:25  ID:CnA8UQLB.net
健全でない言葉が含まれているため表示しません 内容を確認する

573
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 06:30:43  ID:FnNfbNzM.net(11)
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

574
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 06:44:29  ID:FnNfbNzM.net(11)
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

575
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 07:30:28  ID:FnNfbNzM.net(11)
#同色上書き塗りつぶし
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

↑のループ等価が↓
コメント1件

576
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 07:31:25  ID:FnNfbNzM.net(11)
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
コメント1件

577
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 07:31:53  ID:FnNfbNzM.net(11)
  #下
  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

578
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 07:34:06  ID:FnNfbNzM.net(11)
再帰関数を無理矢理ループで書くことが
正解だなんてとても思えないんだけど・・・

579
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 07:57:54  ID:FnNfbNzM.net(11)
>575-577
はdestにcolorが最初から使われていると、それ以上塗れないバグがあるな
ま、いいか

580
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 08:01:46  ID:FnNfbNzM.net(11)
destはコピー先だからそういう条件でクリア済みってことで

581
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 08:14:57  ID:FnNfbNzM.net(11)
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

582
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 08:16:57  ID:FnNfbNzM.net(11)
>576-577
も同様に直してね

583
NAS6 ◆n3AmnVhjwc []   投稿日:2016/01/05 08:48:45  ID:FnNfbNzM.net(11)
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()に飛ばすように考えるのもめんどくさい
つまり、再帰関数の構造化の部分までなんでわざわざ
コーディングする必要があるのか謎

584
デフォルトの名無しさん[sage]   投稿日:2016/01/05 23:45:47  ID:zRwuHMxA.net
そうだね、グリーンだね。

任意の再帰はスタックを使えばループに書き直せるし、任意のループは末尾再帰で書き表せるけど
書きやすい方で書いたら良いんじゃない?
配列を舐めるだけのループをわざわざ再帰で書く必要はないし、
二分木を舐めるだけの再帰をわざわざループで書く必要はない。
勿論例外は幾つもあるけどね。

585
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/06 01:13:15  ID:kZN9AhFE.net
健全でない言葉が含まれているため表示しません 内容を確認する
コメント1件

586
デフォルトの名無しさん[sage]   投稿日:2016/01/06 01:26:34  ID:2plodUsJ.net
>585
語彙少なすぎだろ

587
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/06 05:38:10  ID:NwAUbAKq.net
時間とフィンガーポイントを無駄にしたくない

588
デフォルトの名無しさん[sage]   投稿日:2016/01/06 11:44:51  ID:Hrty1iRZ.net
ばいばい

589
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/07 03:29:43  ID:VBUUQOGk.net

590
デフォルトの名無しさん[sage]   投稿日:2016/01/07 14:29:25  ID:9s+XESwg.net
>589
時間とフィンガーポイントを無駄にしない為に今すぐ2chから立ち去るんだ!
さぁ早く!

591
デフォルトの名無しさん[sage]   投稿日:2016/01/07 23:10:34  ID:ceukK3gk.net
またuyが言い負かされてると聞いて

592
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/08 07:36:31  ID:37pbuAYe.net
http://kakaku.com/item/K0000791258/
これを使ってるけど打ちにくい
隙間にゴミが入りにくいキーボードで何か探してくれれば長文レス出来るけど
ゲームもやるから同時押しが出来ないキーボードは使えないんだよ
バッファローのこのキーボード系列は
何故かゲーミングキーボードでもない癖にかなりの同時押しが出来る
お前らもこれくらい社会の役に立ってくれ

593
デフォルトの名無しさん[sage]   投稿日:2016/01/08 07:58:14  ID:qSmN42Fw.net(2)
健全でない言葉が含まれているため表示しません 内容を確認する

594
デフォルトの名無しさん[sage]   投稿日:2016/01/08 08:06:15  ID:t0B3KsjR.net
ゲームなどという恥ずかしいご趣味をお持ちのようで

595
デフォルトの名無しさん[sage]   投稿日:2016/01/08 12:51:08  ID:OGMciHiU.net
tail callはrecursive callと直行する概念だと理解してないのが何人かいるな
コメント1件

596
デフォルトの名無しさん[]   投稿日:2016/01/08 12:54:36  ID:qoujFuKs.net
直行てなんやねんwてのが何人もいるな

597
デフォルトの名無しさん[sage]   投稿日:2016/01/08 13:19:39  ID:39T3KdLp.net(2)
読みやすい方で書いたらいいんちゃうの?
無理にループにしてソース長くしてテスト項目増やす奴の気がしれんわ

598
デフォルトの名無しさん[sage]   投稿日:2016/01/08 13:22:10  ID:39T3KdLp.net(2)
取り敢えずutがカスだってのは旗から見てわかった

補足しておくけどループで済むものを再起にしろと言ってるわけではないからな

599
デフォルトの名無しさん[sage]   投稿日:2016/01/08 14:05:20  ID:qSmN42Fw.net(2)
そりゃrecursiveじゃないtail callなんざ幾らでもあるわ

600
デフォルトの名無しさん[sage]   投稿日:2016/01/08 14:44:50  ID:oo2zXXZh.net

601
デフォルトの名無しさん[sage]   投稿日:2016/01/08 19:53:25  ID:XdIzL1DI.net
仮にもプログラマならHHK使ってます自慢くらいしろよっていう

そういう俺はreal forceだけど。

602
デフォルトの名無しさん[sage]   投稿日:2016/01/08 22:36:48  ID:ktsgJ36p.net
>595
まっすぐ行ってどうすんねん…

603
デフォルトの名無しさん[sage]   投稿日:2016/01/08 22:52:34  ID:Ydps26p4.net
ワロタ

604
デフォルトの名無しさん[]   投稿日:2016/01/09 19:28:51  ID:j10t/SxZ.net
芸能界で生きていけるレベルの芸だな。

605
uy ◆Qawu9.2l1E [sage]   投稿日:2016/01/13 15:37:06  ID:KvZEN8k1.net
自分はプログラマじゃないんだよ
目的を最高効率で達成する事を念頭に置いてるスクリプトキディだ

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

身分がちげーんだよカス
コメント1件

606
デフォルトの名無しさん[]   投稿日:2016/01/13 16:53:37  ID:QjeDGB/s.net(2)
スクリプトキディの意味も知らないのな

607
デフォルトの名無しさん[sage]   投稿日:2016/01/13 16:58:20  ID:4eNfFdO0.net
(他人の作った)スクリプトを使うしか能の無いお子様

正しく自分のこと理解してるということでいいのかもしれないですね。

608
デフォルトの名無しさん[]   投稿日:2016/01/13 18:34:23  ID:QjeDGB/s.net(2)
正しく自分を理解していたら、あんなバカな生態を晒し続けるわけが無い

スクリプトキディとは、他人の作ったスクリプトでいたずらしてはしゃぐお子様の事だね

609
デフォルトの名無しさん[sage]   投稿日:2016/01/13 19:01:27  ID:U6rexLyV.net(2)
にちゃんに

610
デフォルトの名無しさん[sage]   投稿日:2016/01/13 19:03:20  ID:U6rexLyV.net(2)
誤送信

2ちゃんに書き込んでる地点で効率最悪といえる

611
デフォルトの名無しさん[sage]   投稿日:2016/01/13 21:24:04  ID:VbVWsLR9.net
地点?

612
デフォルトの名無しさん[sage]   投稿日:2016/01/13 22:25:51  ID:IMboGSkT.net
数学的な再帰定義関数は好き
プログラムの再帰定義は多少罪悪感が

613
デフォルトの名無しさん[sage]   投稿日:2016/01/14 05:26:27  ID:uv3Ej0dB.net
身分は再起する

614
デフォルトの名無しさん[sage]   投稿日:2016/01/15 10:47:33  ID:u0Mj97aD.net
>605
読みやすさを考慮しなくていいとか言うなら、ソースあげんなksが

615
デフォルトの名無しさん[]   投稿日:2016/01/15 20:31:31  ID:POz82VxF.net(2)
まともなプログラムは再帰使わないて
Javaじゃ標準でhashでもvisitorでも使ってるやん
初心者かな?
コメント1件

616
デフォルトの名無しさん[]   投稿日:2016/01/15 20:52:05  ID:DNDI2k7a.net(2)
>615
ウェブサイトがハッキングされるのはそのせいかもしれませんね。

617
デフォルトの名無しさん[]   投稿日:2016/01/15 20:59:16  ID:POz82VxF.net(2)
ワロタ
何別人ぶってるんだコイツ

618
デフォルトの名無しさん[]   投稿日:2016/01/15 21:40:58  ID:bARE8Ecx.net
Javaがまともじゃないとか何様だよ

619
デフォルトの名無しさん[]   投稿日:2016/01/15 22:51:22  ID:DNDI2k7a.net(2)
Haskellを知ればJavaなんぞ子供のおもちゃにも及ばない。

620
デフォルトの名無しさん[sage]   投稿日:2016/01/15 22:52:36  ID:nz6sd5//.net
でも cloujure が気になるのです‥

621
デフォルトの名無しさん[]   投稿日:2016/01/16 20:53:37  ID:mv0cs2FW.net
データベース扱いにくいゴミ

622
デフォルトの名無しさん[]   投稿日:2016/01/16 22:18:41  ID:8IHN4wdz.net
データベースは扱いにくいゴミだそうです。

623
デフォルトの名無しさん[sage]   投稿日:2016/01/17 15:36:45  ID:LBaM8j14.net
いや、もしかしたら
データベースを扱うのに困難を伴うゴミ人間って意味かも

624
デフォルトの名無しさん[]   投稿日:2016/01/17 18:00:23  ID:UWpoaTz9.net
もしかして、もしかしてだけどさ、Haskelのこと言ってるんじゃね?

625
デフォルトの名無しさん[sage]   投稿日:2016/01/18 05:28:47  ID:lC5RiWYz.net
Haskellほどデータベース扱いやすい言語も少ないからそれはない

626
デフォルトの名無しさん[]   投稿日:2016/01/18 20:02:16  ID:DTRfKFLk.net
世界一のデータベースを持つと言われるGoogleがHaskellで動いているくらいだからね。

627
デフォルトの名無しさん[sage]   投稿日:2016/01/18 20:42:43  ID:1d5YkXP9.net
Haskellって実用で使われてんのかw
おもちゃかと思ってたわw

628
デフォルトの名無しさん[]   投稿日:2016/01/19 15:31:29  ID:py3nDmvs.net
おもちゃだよ
Googleのおもちゃ

629
デフォルトの名無しさん[sage]   投稿日:2016/01/19 21:26:53  ID:C1tOs2Eu.net
この世はおもちゃで十分

630
デフォルトの名無しさん[sage]   投稿日:2016/01/20 12:31:10  ID:K5mS7ftq.net
2ちゃんは漏れらのおもちゃ

631
デフォルトの名無しさん[]   投稿日:2016/01/20 17:52:59  ID:Evm4j3E4.net
漏れらとか使う香具師久しぶりに見たわ

632
デフォルトの名無しさん[sage]   投稿日:2016/01/20 19:02:11  ID:aKBKow0I.net
イッテヨシとかギコはにゃーんとかもう死語なんだろうな。
ゴルァはまだありかな。

633
デフォルトの名無しさん[sage]   投稿日:2016/01/21 12:48:08  ID:zpe1QHZ3.net
ヌルポにはガッっていうのはなぜだったのか理由がいまだに判らないので
香具師にどう反応すればいいのかも判らない
コメント2件

634
デフォルトの名無しさん[sage]   投稿日:2016/01/21 23:38:12  ID:C4EemGup.net
>633
ぬるぽにかぎらず、例外発生したら、ガッ!

635
デフォルトの名無しさん[sage]   投稿日:2016/01/22 01:18:00  ID:G5rv7JJ3.net
>633
NullPointerExceptionをぬるぽと呼ぶスレだかなんだかいうスレタイのスレが立った2分後に
2が1にガッしたから

だった筈

636
デフォルトの名無しさん[sage]   投稿日:2016/01/22 11:22:37  ID:vIHZAGQE.net
ヌルポ
コメント1件

637
デフォルトの名無しさん[]   投稿日:2016/01/22 17:22:39  ID:AzZButyZ.net
たたき続けなさい
さすればヌルポは失せるでしょう

638
デフォルトの名無しさん[sage]   投稿日:2016/01/23 18:27:15  ID:TOjqi36j.net

639
デフォルトの名無しさん[sage]   投稿日:2016/01/23 18:56:26  ID:0d2orZXz.net
>638
ガッてキャッチのことだったの?

640
デフォルトの名無しさん[]   投稿日:2016/01/31 18:53:58  ID:N9Aq8poo.net
>638
そしてスローせず

641
デフォルトの名無しさん[sage]   投稿日:2016/01/31 21:42:25  ID:OzonL4m2.net
ガッはガッチャの略だろ。 ガッチャマンでお馴染みのガッチャはI have got you.の略で捕まえたとかの意味。

642
デフォルトの名無しさん[]   投稿日:2016/02/01 01:42:44  ID:IP+vl4xQ.net
でもアメリカのドラマ見てると了解するときにガッチャ!って言ってるよね。
特にチャーリーズエンジェルのカエル顔が(別のドラマでも)言ってるような気がする。

643
デフォルトの名無しさん[sage]   投稿日:2016/02/19 20:26:15  ID:wEwKzS1i.net(2)
再帰使うとエラーの予測が立てにくい

644
デフォルトの名無しさん[sage]   投稿日:2016/02/19 22:00:01  ID:eeiEIdAh.net
それ再帰のせいじゃなくてもともと難しいアルゴリズムなんじゃ

645
デフォルトの名無しさん[sage]   投稿日:2016/02/19 22:04:28  ID:jxx0XdOv.net
再帰の方が簡単に難しいアルゴリズムを作れる

646
デフォルトの名無しさん[sage]   投稿日:2016/02/19 22:41:27  ID:wEwKzS1i.net(2)
同じコードでも言語やバージョンの違いで即死する可能性があるのがネック。
可能ならwhileにするよ。
どうでもいいスクリプトなら木にしないけど。
べ、別に再帰関数苦手なわけじゃないんだからね!

647
デフォルトの名無しさん[sage]   投稿日:2016/02/24 00:10:47  ID:i1Xglt1a.net
再帰否定する奴は局所変数も否定すんの?

648
uy ◆Qawu9.2l1E []   投稿日:2016/02/25 06:44:19  ID:loCQbBq3.net
再帰否定派は生きるのがつらいんだよ
いつも周りのもの何もかも否定してるよ

649
デフォルトの名無しさん[sage]   投稿日:2016/02/25 12:35:19  ID:tc7lGvfi.net
無限か有限かを判別するだけでも難しい再帰コールが簡単に作れるからな

650
デフォルトの名無しさん[sage]   投稿日:2016/02/25 22:13:06  ID:OuMkr9Sq.net
ループなら無限か有限か簡単に判別できるとでも?

651
デフォルトの名無しさん[sage]   投稿日:2016/02/26 03:25:44  ID:VdCPJ0Vc.net(3)
再帰の方が簡単に作れる

652
デフォルトの名無しさん[sage]   投稿日:2016/02/26 03:33:16  ID:VdCPJ0Vc.net(3)
例えば再帰を使えばC++149文字で数学的に非常に判別が難しいコードが作れる
ステップ数がF_φ_ω(0) (n)のオーダー
再帰を使わないともっとずっと必要な文字数は増える

653
デフォルトの名無しさん[]   投稿日:2016/02/26 12:24:24  ID:x5+an1W2.net
つまり再帰を使うと簡単に分かりにくいコードが書けてしまうというアピール

アホなのこいつ?

654
デフォルトの名無しさん[sage]   投稿日:2016/02/26 12:55:19  ID:V8jyQAYV.net
まともなプログラマーしかいなけりゃ問題ないよ

655
デフォルトの名無しさん[sage]   投稿日:2016/02/26 20:22:01  ID:KBsVtPlI.net
適材適所

まぁ、ループは現代ではほとんど高階関数に置き換えられてはいるが

656
デフォルトの名無しさん[sage]   投稿日:2016/02/26 20:31:47  ID:VdCPJ0Vc.net(3)
そうか?

657
デフォルトの名無しさん[sage]   投稿日:2016/02/27 09:47:03  ID:GGk6IaQQ.net
再帰、ループ、高階関数は互いに別カテゴリーの概念だけどな。

658
デフォルトの名無しさん[sage]   投稿日:2016/02/27 13:35:50  ID:wN2C/qqy.net
>ループは現代ではほとんど高階関数に置き換えられてはいるが

mapとかfoldって言いたいの?

659
デフォルトの名無しさん[sage]   投稿日:2016/02/29 09:52:02  ID:+UQXiICf.net
ファンクショナルのことだろ

660
デフォルトの名無しさん[sage]   投稿日:2016/02/29 12:09:46  ID:gY4tu7UX.net
Yコンビネータの事かも

661
デフォルトの名無しさん[sage]   投稿日:2016/03/05 08:19:26  ID:C1oJ0ySj.net
最近の言語は分かり易いから好んで使う人多いみたいだね。

俺はダメだわ。単純な再帰でもアセンブラ時代の間接修飾と再帰を混合で使ってたときのトラウマが・・・

662
デフォルトの名無しさん[sage]   投稿日:2016/03/05 13:03:33  ID:4AspLwzf.net
スタック使うから組み込みでは禁則かな

663
デフォルトの名無しさん[sage]   投稿日:2016/03/05 16:01:56  ID:Xc1YGBo+.net
末尾呼びにすればぁ?

664
デフォルトの名無しさん[sage]   投稿日:2016/03/06 13:58:13  ID:9mzH85Ox.net
無理して使う物ではないのは、確か。

665
デフォルトの名無しさん[]   投稿日:2016/03/07 19:41:03  ID:0qoaCMqF.net
今更だけどアッカーマンの展開ループです
https://ideone.com/dKocyf

これループに直せません?
https://ideone.com/Ub1M86
コメント1件

666
デフォルトの名無しさん[sage]   投稿日:2016/03/07 20:15:13  ID:X8YwrOCo.net
>665
ループ,というよりは map によるメモ化を先にするべきかと思う

667
デフォルトの名無しさん[sage]   投稿日:2016/03/07 20:44:00  ID:ouSCK2N5.net(2)
アッカーマンメモ化はやめとけ
メモリ使用量がシャレにならん。
小さい引数ならいいけど。

668
デフォルトの名無しさん[sage]   投稿日:2016/03/07 23:04:02  ID:ouSCK2N5.net(2)
と思ったけどスタック消費量は逆に減る?
よくわからんくなってきた。
コメント1件

669
デフォルトの名無しさん[]   投稿日:2016/03/07 23:55:21  ID:DhnnCcYX.net
>668
アッカーマンはメモ化意味ない
コメント1件

670
デフォルトの名無しさん[sage]   投稿日:2016/03/08 06:31:35  ID:mBS7w7C0.net
しかしヤッターマンならきっとやってくれる

671
デフォルトの名無しさん[sage]   投稿日:2016/03/09 19:45:38  ID:8kThrIH6.net
>669
それはありえない.
アッカーマン関数にメモ化は有用な手段
【BTC有償】C/C++/Java/C#/JSの問題を片付けます(5)

672
デフォルトの名無しさん[sage]   投稿日:2016/03/15 20:46:33  ID:Ar6pzjDU.net
メモ化とかメモリリークしてるに等しい欠陥技術でしょ。
コメント1件

673
デフォルトの名無しさん[sage]   投稿日:2016/03/15 20:54:37  ID:RIoPtDsj.net
>672
fjの昔からの議論をここで蒸し返しますか?

674
デフォルトの名無しさん[sage]   投稿日:2016/03/25 20:10:31  ID:ARWxn+lM.net
再帰というソフトにはスタックというハードがあるけどほかのソフトをハードで実装するのはどうなの?
GCとかハードで実装してまったくフリーズなしに出来ないの?

675
デフォルトの名無しさん[sage]   投稿日:2016/03/27 16:40:13  ID:WR+Y3fPV.net
int main(){return main();}

676
デフォルトの名無しさん[sage]   投稿日:2016/03/31 20:21:06  ID:qF1fcJk9.net(13)
とあるRubyスクリプトだけどこれと等価のC書けんの?

$f=lambda{
print "f";
return $g
}

$g=lambda{
print "g"
return $f
}

a=$f
10.times{a=a.call}

677
デフォルトの名無しさん[]   投稿日:2016/03/31 20:26:53  ID:+v8smRGz.net(5)
rubyはcで書かれているんやで知らんかったやろ?

678
デフォルトの名無しさん[sage]   投稿日:2016/03/31 20:35:19  ID:qF1fcJk9.net(13)
そういう等価じゃなくて文法的にというか。
Cだと$fと$gの型をどうしていいかわからん。

679
デフォルトの名無しさん[sage]   投稿日:2016/03/31 21:08:44  ID:qF1fcJk9.net(13)
グローバル変数じゃなくてもこれでいけるっぽい

g=nil

f=lambda{
print "f";
return g
}

g=lambda{
print "g"
return f
}


a=f
10.times{a=a.call}

680
デフォルトの名無しさん[]   投稿日:2016/03/31 21:11:44  ID:+v8smRGz.net(5)
typedef void *(*F)()でいいやんけ

681
デフォルトの名無しさん[sage]   投稿日:2016/03/31 21:15:14  ID:qF1fcJk9.net(13)
まじで
やってみる

682
デフォルトの名無しさん[sage]   投稿日:2016/03/31 21:20:03  ID:qF1fcJk9.net(13)
やりかたわからん。
コンパイル通るソースプリーズ

683
デフォルトの名無しさん[]   投稿日:2016/03/31 21:36:59  ID:+v8smRGz.net(5)
これでいけるやろ
#include <stdio.h>
typedef void *(*F)();
void *f();
void *g();
void *f()
{
puts("f");
return g;
}
void *g()
{
puts("g");
return f;
}
int main()
{
int i;
F func;
func = f;
for (i = 0; i < 10; ++i)
func = func();
return 0;
}

684
デフォルトの名無しさん[sage]   投稿日:2016/03/31 21:42:19  ID:qF1fcJk9.net(13)
g++だとエラーになるんだが。
コンパイラは何で確認した?
コメント1件

685
デフォルトの名無しさん[]   投稿日:2016/03/31 21:46:42  ID:+v8smRGz.net(5)
なんでいきなりg++やねんw
これ以上はcの質問スレでもいって聞けタコ

686
デフォルトの名無しさん[sage]   投稿日:2016/03/31 21:55:26  ID:qF1fcJk9.net(13)
なんだ、結局コンパイル通ってないのか

687
デフォルトの名無しさん[]   投稿日:2016/03/31 22:06:32  ID:+v8smRGz.net(5)
通るわアホw
つーかそんなレベルでよくその質問出来るなお前

688
デフォルトの名無しさん[sage]   投稿日:2016/03/31 22:09:21  ID:qF1fcJk9.net(13)
だからコンパイラは何つかったんよ。
こっちでも確認するから教えれ。
有料コンパイラだったら諦めるけど。

689
デフォルトの名無しさん[sage]   投稿日:2016/03/31 22:22:46  ID:qF1fcJk9.net(13)
まあ、C質問スレにもマルチしてみるわ

690
デフォルトの名無しさん[sage]   投稿日:2016/03/31 22:23:23  ID:X8/ytHGi.net

691
デフォルトの名無しさん[sage]   投稿日:2016/03/31 22:34:22  ID:qF1fcJk9.net(13)
>690
ふーむ確かに。
コンパイラがC++だといかんの?

692
デフォルトの名無しさん[sage]   投稿日:2016/03/31 22:49:44  ID:qF1fcJk9.net(13)
キャストすればいいのか

693
デフォルトの名無しさん[sage]   投稿日:2016/03/31 22:50:45  ID:qF1fcJk9.net(13)
しかしvoid * はなにか負けたような気分になるなw
コメント1件

694
デフォルトの名無しさん[sage]   投稿日:2016/03/31 23:19:06  ID:rR3RT0GR.net
キャストが嫌ならちゃんと型定義すればいいじゃん
と思ったがちゃんとやるには自己参照型定義みたいなのが必要になるのか
Cでそれってできるのかな

関数型Fのポインタを返す関数型をFと定義
コメント1件

695
デフォルトの名無しさん[sage]   投稿日:2016/03/31 23:22:26  ID:qF1fcJk9.net(13)
>694
そう、それ!
俺もそれで悩んだ。

696
デフォルトの名無しさん[]   投稿日:2016/04/01 00:06:13  ID:hr4pCajV.net
お前はその前に悩むべき問題が山程あるだろw

697
デフォルトの名無しさん[sage]   投稿日:2016/04/01 03:40:11  ID:0hX+vVN6.net
voidにキャストがどうのって、rubyでコード書くような奴に言われてもなぁ。

698
デフォルトの名無しさん[sage]   投稿日:2016/04/01 22:07:22  ID:8s2Zo6V8.net
>関数型Fのポインタを返す関数型をFと定義

これ定義できる静的型言語ってあるの?
それとも本質的論理的に矛盾した型であって、どうやっても定義できないの?

699
デフォルトの名無しさん[sage]   投稿日:2016/04/06 03:07:16  ID:0S+muf67.net
Forループは正直見た目が汚らしい
場合にもよるんだろうけど、再帰で書けるならそっちのほうがコードが綺麗になる

700
デフォルトの名無しさん[]   投稿日:2016/04/06 12:22:11  ID:N51toXoc.net
いかにもルビイバカらしい考え方だな

701
デフォルトの名無しさん[sage]   投稿日:2016/04/06 19:04:18  ID:H8hE7WlY.net
なんでルビイなんだ?
ハスケルバカならまだわかるが。

702
デフォルトの名無しさん[sage]   投稿日:2016/04/06 23:26:38  ID:UScN8EXw.net
るびいもはすけるもよく知らないんでしょ

703
デフォルトの名無しさん[sage]   投稿日:2016/04/14 21:05:36  ID:Lg/h7ZOX.net(2)
Y = λf.(λx.f (x x)) (λx.f (x x)) 

704
デフォルトの名無しさん[sage]   投稿日:2016/04/14 22:00:43  ID:Lg/h7ZOX.net(2)
#include<stdio.h>
char*s="#include<stdio.h>%cchar*s=%c%s%c;main(){printf(s,10,34,s,34);return 0;}";main(){printf(s,10,34,s,34);return 0;}

705
デフォルトの名無しさん[sage]   投稿日:2016/04/23 00:44:20  ID:voC0Rj8b.net
ピクセルシェーダーで再帰関数使えるようになるのはいつだろうか

706
デフォルトの名無しさん[sage]   投稿日:2016/04/24 20:32:40  ID:Y7E1SWkm.net
CPUがGPU化するのが先かGPUがCPU化するのが先か。
まあ超並列プログラムは憧れるけどね。

707
デフォルトの名無しさん[sage]   投稿日:2016/04/26 20:14:03  ID:ymr+ysub.net
main = putStrLn $ q ++ show q where q = "main = putStrLn $ q ++ show q where q = "

708
デフォルトの名無しさん[sage]   投稿日:2016/04/27 01:24:44  ID:Pvz0UkFG.net
超並列はどうしてもデータレースが怖いからハードウェアトランザクションは必須だな

709
デフォルトの名無しさん[sage]   投稿日:2016/04/28 20:33:07  ID:B776VxzF.net
ツクツクボウシの鳴き声を一番正確に表せた奴が優勝 [無断転載禁止]©2ch.net

1 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:01:56.231 ID:EVnE4ji20
ツクツクボーシッ!!!!ツクツクボーシッ!!!!ツククツ、ツククククククク……!!!
アッ ヴィーナス!!!! ヴィーナス!!!!ヴィヴィヴィヴィッ!!!!!

8 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:05:05.180 ID:rZ8gq0650
ツクツクホーシ!ツクツクホーシ!ッツクツク、ツクツクホーシ!
ッ!ツクツクヴィーヨー!ツクツクヴィーヨー!ツクツクツクツクアアアアア゙ア゙ア゙ア゙ア゙…天

12 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:24:50.425 ID:SYCMGSQFa
ツクツクウィーヨーンwwwwwwツクツクウィーヨーンwwwwwwウィーヨーンwwwwwwウィーヨーンwwwwwwあああああああああああああああ あ!!!!!!!

710
デフォルトの名無しさん[]   投稿日:2016/04/30 22:02:43  ID:uVz81x78.net
GitHubで匿名通信(Tor、i2p等)ができるBitComet(トラッカーサイト不要でDHTだけで日本語検索可能)
みたいな、BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenant(純粋P2Pのファイル共有ソフト)の完成が待ち遠しいプログラミングできないアスペルガーw
q

711
デフォルトの名無しさん[]   投稿日:2016/05/04 10:34:46  ID:PLBcNQ3k.net
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません

712
デフォルトの名無しさん[]   投稿日:2016/05/05 20:47:26  ID:a3JwFvV1.net
眠い時にプログラム書いてたら1つの関数の中にこれでもかと再帰を詰め込んだモンスター関数を書いてしまって訳が分からなくなる

713
デフォルトの名無しさん[sage]   投稿日:2016/05/09 20:57:03  ID:QYIZFGji.net
アッカーマン関数はただの再帰じゃないらしいけど、
再帰のパワーを究極まで高めたら何になるの?

714
デフォルトの名無しさん[sage]   投稿日:2016/05/10 14:12:08  ID:zxnDb8j/.net
チューリングマシンになる

証明:以下より明らか
・再帰を用いて、スタックとループをそれぞれ構築できる
・スタック2つとループを用いて、チューリングマシンを模倣できる
・故に、再帰の能力はチューリングマシン以上である。
・一方で、チューリングマシンを用いて再帰を表現出来る
・よって、再帰はチューリングマシンと等価である。

# ツッコミ待ち

715
デフォルトの名無しさん[sage]   投稿日:2016/05/10 22:44:58  ID:HO4tbZvB.net
突っ込み待ちというかそんなに間違ってなくない?

716
デフォルトの名無しさん[sage]   投稿日:2016/05/11 19:52:51  ID:+rpbSEWz.net
なんで再帰がどうこうで喧嘩してるんだこいつらw

717
デフォルトの名無しさん[sage]   投稿日:2016/05/11 20:12:13  ID:LnJQmy5e.net
グッドスタイン数列というのがペアノ算術の限界を超えた再帰という話があるらしいのだが、詳しいことはよくわからない。
でもロマンを感じる。

718
デフォルトの名無しさん[]   投稿日:2016/05/19 19:24:04  ID:eYV7veAj.net
女性限定、恋愛相談サイトオープン。
4000名のイケメンカウンセラーが在籍中♪

自己紹介動画はいつでも見放題です!

メンガ って検索してください
※本当のサイト名は英字です

719
デフォルトの名無しさん[]   投稿日:2016/06/19 18:09:53  ID:SmadYZ7Z.net
最近再帰好きだわ
コメント1件

720
デフォルトの名無しさん[sage]   投稿日:2016/06/19 20:03:06  ID:d2BELKj/.net
ダジャレ?

721
デフォルトの名無しさん[sage]   投稿日:2016/06/19 20:41:14  ID:N0SKT7vZ.net
>719
そう言う時期が俺にもあったな...(遠い目)

722
デフォルトの名無しさん[sage]   投稿日:2016/06/19 21:07:57  ID:OFyR5xSG.net
再帰で実装した方がスッキリするケースってなかなか出てこないから最近全く使ってないや

723
デフォルトの名無しさん[sage]   投稿日:2016/06/20 12:26:15  ID:xPaMOXBK.net
再起なんてバグの温床だからなぁ
マインスイーパー作る時ぐらいしか使わない

724
デフォルトの名無しさん[sage]   投稿日:2016/06/20 19:47:38  ID:YaidyggX.net(2)
import Data.Function (on)
import Data.List (concatMap, groupBy)
main =
    let (f:r) = mypi 2 4 1 12 4
        s = slice 5 $ slice 10 $ concatMap show r
    in putStrLn (show f ++ ".")
       >> putStr (unlines $ map unwords $ take 200 s)
slice :: Int -> [a] -> [[a]]
slice n ls = let q = concatMap (replicate n) [0..] :: [Int]
             in map (map snd) $ groupBy ((==) `on` fst) $ zip q ls
mypi :: Integer -> Integer -> Integer -> Integer -> Integer -> [Integer]
mypi k a b a1 b1 =
    let p = k * k
        q = 2 * k + 1
        a' = a1
        b' = b1
        a1' = p * a + q * a1
        b1' = p * b + q * b1
        loop a a1 d d1 =
            if d == d1 then
                d : let a' = 10 * (a `rem` b' )
                        a1' = 10 * (a1 `rem` b1')
                    in loop a' a1' (a' `quot` b') (a1' `quot` b1')
            else
                mypi (k + 1) a b' a1 b1'
     in loop a' a1' (a' `quot` b') (a1' `quot` b1')
えんしうりつを100まんけたひょうじする

725
デフォルトの名無しさん[sage]   投稿日:2016/06/20 23:20:34  ID:Lsa8y5Hv.net
パイ焼きか?
何秒で計算できんの?

726
デフォルトの名無しさん[sage]   投稿日:2016/06/20 23:52:55  ID:YaidyggX.net(2)
$ time ./pi >/dev/null
./pi > /dev/null 0.40s user 0.00s system 99% cpu 0.400 total
一瞬やね(最適化 -O)
ちなアルゴリズムはRubyのソースについてるやつから持ってきた

727
デフォルトの名無しさん[sage]   投稿日:2016/06/27 22:23:07  ID:99UKpQvj.net
深さ優先探索より幅優先探索が好きだ。
重複がある場合計算量が深さより有利だし、
メモリモリモリ積んでゴリゴリ問題を制覇する感じがたまらない。

728
デフォルトの名無しさん[sage]   投稿日:2016/06/28 10:17:41  ID:yMD5BWvc.net
幅優先探索の絶対見つかる感は異常

729
デフォルトの名無しさん[]   投稿日:2016/07/18 23:29:48  ID:v2MXNS7u.net
まだ再帰一回しか使ったこと無いな。
ループでもよかった感じしたけど

730
デフォルトの名無しさん[sage]   投稿日:2016/07/26 07:09:31  ID:HN1KCMsQ.net(3)
>33
iがインクリメント出来ないw

731
デフォルトの名無しさん[sage]   投稿日:2016/07/26 07:11:59  ID:HN1KCMsQ.net(3)
ディレクトリ掘っていく処理なら再帰の方がすっきり書ける
それ以外使ったこと無いけど

732
デフォルトの名無しさん[sage]   投稿日:2016/07/26 07:14:06  ID:HN1KCMsQ.net(3)
Javaの例外の発生源を探すのにも使った

733
デフォルトの名無しさん[sage]   投稿日:2016/07/28 22:29:51  ID:dH/T3UwK.net(2)
flattenがあると再帰書かなくて済むことがまれによくある。

734
デフォルトの名無しさん[sage]   投稿日:2016/07/28 23:29:35  ID:dH/T3UwK.net(2)
findとかディレクトリのflattenだよね〜

735
デフォルトの名無しさん[sage]   投稿日:2016/07/30 09:51:23  ID:d/v3ZRhl.net
再帰は楽しい

736
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:01:40  ID:v/rkDCKK.net
超簡単なハノイの塔のコードを
理解出来ない奴らばかり

俺様ステキ

再帰は楽しい

737
デフォルトの名無しさん[sage]   投稿日:2016/07/30 22:19:26  ID:jcPMAjAY.net
ハノイの塔って最初誰が考えたんだろなw
まさに再帰のための問題だよなw
コメント1件

738
デフォルトの名無しさん[sage]   投稿日:2016/07/31 02:49:55  ID:rhb0jFW4.net
>737
エドゥアール・リュカ/1800年代後半

739
デフォルトの名無しさん[sage]   投稿日:2016/07/31 11:30:45  ID:ea63k9Af.net
連分数展開って見た目的にも再帰的
あとは連平方根なんてのもあったっけ?

740
デフォルトの名無しさん[sage]   投稿日:2016/08/01 17:10:15  ID:JXVULl1x.net
行列式の値を余因子行列から求めるって発想が好き

741
デフォルトの名無しさん[sage]   投稿日:2016/08/14 09:13:25  ID:Dug1tlBQ.net
数学のように条件を書くだけで処理が書けるのは楽しい
コメント1件

742
デフォルトの名無しさん[sage]   投稿日:2016/08/14 12:23:51  ID:fahh+/HO.net
>741
では
これの値を教えてください

lim[n->∞]sin(πen!)

わりとまじです

743
デフォルトの名無しさん[sage]   投稿日:2016/08/14 12:55:12  ID:2ASH1YAS.net
en==円

744
デフォルトの名無しさん[sage]   投稿日:2016/08/16 08:58:30  ID:Q5NurgQe.net
順次反復分岐だけで超深いは凄いな

745
デフォルトの名無しさん[sage]   投稿日:2016/10/13 18:45:18  ID:zUN0ltZm.net
>693
これこそ C の最強な部分だ

746
デフォルトの名無しさん[sage]   投稿日:2016/10/13 18:46:47  ID:Xwk5OgLP.net
void **hoge; のときに
void *fuga = hoge; でもイケてしまうときとダメな時があるんだが良く判らん。

747
デフォルトの名無しさん[]   投稿日:2016/10/30 02:58:18  ID:oDMcv2JQ.net
斉木楠雄と再帰関数って似てるよな

748
デフォルトの名無しさん[sage]   投稿日:2016/10/30 13:41:20  ID:broC4ect.net
小町算の総当たり問題は綺麗にかけて好き

749
デフォルトの名無しさん[sage]   投稿日:2016/11/06 03:07:23  ID:gP4JS71d.net
昔カッコつけてクラスのコンストラクトの再帰だったかループが爆発するバグを作ったことがある
バックトレース大変だった思い出
フリーダムなC言語系は好きだ

750
デフォルトの名無しさん[sage]   投稿日:2016/11/06 09:26:24  ID:rGVVvSQ9.net
int main()
{
return main();
}
コメント1件

751
デフォルトの名無しさん[sage]   投稿日:2016/11/06 12:42:18  ID:PPwxyKBf.net
>750
なめてんの?

752
デフォルトの名無しさん[sage]   投稿日:2016/11/09 21:10:33  ID:5TPAUZWc.net
再帰は面白いと思ってた時期もあった気がする。

ただ引数や戻り値を順番付けて管理しておけば処理内容はループと同じなんだよね。もちろん実行資源の内訳も。
と言うより、「再帰はループの一つである」という表現のほうが正しいか
コメント1件

753
デフォルトの名無しさん[sage]   投稿日:2016/11/09 22:24:15  ID:QOOLd5xM.net
ハノイの塔

754
デフォルトの名無しさん[sage]   投稿日:2016/11/10 13:14:57  ID:17noS2hU.net
>752
んなわけない。明らかに別物

755
デフォルトの名無しさん[sage]   投稿日:2016/11/10 13:24:06  ID:dxAJlx69.net(3)
ただのループでスタックオーバーフローの心配はないからなぁ
コメント2件

756
デフォルトの名無しさん[sage]   投稿日:2016/11/10 13:27:48  ID:dxAJlx69.net(3)
x 再帰はループの一つ
x ループは再帰の一つ

o 再帰でやりたいことはループでも実現できる
o ループでやりたいことは再帰でも実現できる
コメント1件

757
デフォルトの名無しさん[sage]   投稿日:2016/11/10 14:27:23  ID:hh42qZlp.net(2)
>755
ただのループが何を指すかが微妙だけど、
再帰を展開したようなループだとカーソル的な物が行き場を無くすとかはあるがな。
そもそもループ自体まやかしみたいなもんだよ。
cmpとjzでしかない。

758
デフォルトの名無しさん[sage]   投稿日:2016/11/10 14:50:09  ID:dxAJlx69.net(3)
djnz派でした
コメント1件

759
デフォルトの名無しさん[sage]   投稿日:2016/11/10 18:03:12  ID:gVGtx90I.net
再帰関数は動作の見た目(想像)が楽しい
でも天才は漸化式求めて一発で計算する

760
デフォルトの名無しさん[sage]   投稿日:2016/11/10 18:13:46  ID:hh42qZlp.net(2)
>758
あー、ループあるな。そういう意味では。
すまんかった。

761
デフォルトの名無しさん[]   投稿日:2016/11/10 19:18:34  ID:bdp7hkfZ.net
天才じゃないから再帰使うわ

762
デフォルトの名無しさん[sage]   投稿日:2016/11/10 19:25:25  ID:Him+SRv0.net(2)
>755
再帰と同じようにループを実装すればオーバーフローしますけど。

>756
実現できるのは外部仕様の話。
内部仕様の話だとこうなる。

ループを使って再帰を作ることはできる。(そもそも内部的に関数はニーモニックの段階でそう作られている)。
関数や再帰にまで抽象化 (いろいろ処理) されたものから、内部仕様としてのループを再現することはできない。


まずこうゆうときは、E(電力)あたりの最小可能処理数を考えるとわかりやすい。
あとはその処理 (抽象概念) にあなたがどのような名前をつけるか。

再帰を再帰だと思うのは、誰かが再帰に再帰という名前をつけた上、あなたもそれを再帰と思い込んだから。
実際にはループで実装されている。
コメント1件

763
デフォルトの名無しさん[sage]   投稿日:2016/11/10 19:26:27  ID:Him+SRv0.net(2)
ループって動的ループね

764
デフォルトの名無しさん[sage]   投稿日:2016/11/11 06:56:11  ID:wvSdzlse.net(2)
>762
> 再帰と同じようにループを実装すればオーバーフローしますけど。
意味わからん
再帰は必ずスタックを使う
単なるループはそんなもん使わない
どうやってスタックオーバーフローするんだ?

765
デフォルトの名無しさん[sage]   投稿日:2016/11/11 07:27:43  ID:xeUlHUrh.net(2)
分からんなら分からんければいいんじゃね
先に事前に書いてあることを偉そうに質問されてもね

766
デフォルトの名無しさん[sage]   投稿日:2016/11/11 07:50:29  ID:wvSdzlse.net(2)
質問ってとっちゃったか w

767
デフォルトの名無しさん[sage]   投稿日:2016/11/11 07:54:13  ID:iDJmU8Gv.net
再帰を展開したようなループ、だから
そんなもん使わない、が偽か、
再起だって必ずしもスタックを使い尽くさない、が真かなんだよな。
コメント1件

768
デフォルトの名無しさん[sage]   投稿日:2016/11/11 08:11:51  ID:xeUlHUrh.net(2)
スタックが必要あるからスタックが採用されるんでしょう。
ループや再帰にかかわらず。そして最適化すれば同じ記述。

769
デフォルトの名無しさん[sage]   投稿日:2016/11/11 09:50:34  ID:e7T2VXvj.net(2)
>767
int main(){ return main(); } 簡単です
コメント1件

770
デフォルトの名無しさん[sage]   投稿日:2016/11/11 11:06:28  ID:4NXZomhC.net
C言語は関数内でローカル関数を定義できないから嫌い
ローカル関数でなら末尾呼び出し除去の保証とかやりやすいのに
コメント3件

771
デフォルトの名無しさん[sage]   投稿日:2016/11/11 11:08:28  ID:goVylNR1.net
珍珍が再帰不能です

772
デフォルトの名無しさん[sage]   投稿日:2016/11/11 12:05:55  ID:KJb+NHX6.net(2)
>769
それオプティマイザ次第で、ただの無限ループになるよ。
そう言う意味じゃなくて。
せめて、cmpとjzに、いやdjnzあるじゃんみたいな話についてこようよ。

773
デフォルトの名無しさん[sage]   投稿日:2016/11/11 12:26:09  ID:Wm/OySfJ.net
>770
C++で、クラス内に関数を定義すりゃいいだけ

774
デフォルトの名無しさん[sage]   投稿日:2016/11/11 13:51:46  ID:e7T2VXvj.net(2)
ではstosbで
コメント1件

775
デフォルトの名無しさん[sage]   投稿日:2016/11/11 19:18:44  ID:KJb+NHX6.net(2)
>774
メモリアクセス要るようなループ書かんだろう…。ましてや再帰の展開で。

776
デフォルトの名無しさん[sage]   投稿日:2016/11/11 19:31:33  ID:F0Rj6jl1.net
>770
なるほどね,コンパイル単位内だけで末尾再帰を保証するわけだね

777
デフォルトの名無しさん[sage]   投稿日:2016/11/11 20:38:07  ID:7sFk++lS.net
>770
今時のコンパイラならファイルスコープでもインライン展開とか再帰の末尾最適化ぐらい余裕でしょ

778
デフォルトの名無しさん[sage]   投稿日:2016/11/12 15:29:28  ID:vO6QCHLM.net
コンパイラが最適化を諦めるくらい難解な処理するんだろ
そのくらいのことじゃないと再帰関数する意味無いからな
それか楽をしたいか、趣味か

779
デフォルトの名無しさん[sage]   投稿日:2016/11/13 23:43:06  ID:Iqvd49JS.net
木構造をループで辿りたいときってスタック使わずにできる?
コメント2件

780
デフォルトの名無しさん[sage]   投稿日:2016/11/13 23:46:50  ID:qpRTYVIa.net
辿るだけ(構造を保持しなくていい)ならできるでしょ
たとえば全てのアドレスを出すだけとか

781
デフォルトの名無しさん[sage]   投稿日:2016/11/14 09:15:00  ID:qrJVzCCo.net
スタックなんて "ヒト" の概念だからな。
自動で伸び縮みするような配列だって内部的にはスタックと同一なわけで一方的に増えていくかもしれない。
構造や順序をスタックせず、現在の状態だけを保持していたとしても、オーバーフローしない理由にはならない。

782
デフォルトの名無しさん[sage]   投稿日:2016/11/14 10:59:32  ID:CNrivUWZ.net
ツリーだってメモリがツリー状になってる訳じゃない罠

783
デフォルトの名無しさん[sage]   投稿日:2016/11/15 06:36:20  ID:HcDSv4MP.net
質問 スタックを使わずにできるか
回答 オーバーフローしない理由にはならない

意味不明

784
デフォルトの名無しさん[sage]   投稿日:2016/11/15 07:51:46  ID:NKQgq3zn.net(3)
できるよ
コメント1件

785
デフォルトの名無しさん[sage]   投稿日:2016/11/15 10:35:05  ID:jLBcnaY6.net(3)
>784
関数呼び出しどうやってするんだよ
それにそんな再帰関数は好きになれないな

786
デフォルトの名無しさん[sage]   投稿日:2016/11/15 10:52:21  ID:NKQgq3zn.net(3)
日本語でおk
コメント1件

787
デフォルトの名無しさん[sage]   投稿日:2016/11/15 13:01:02  ID:jLBcnaY6.net(3)
>786
ニーハオ!
モドル サキ ハ ドコニ キヲク シマスカ?

788
デフォルトの名無しさん[sage]   投稿日:2016/11/15 14:10:56  ID:NKQgq3zn.net(3)
>779-782

789
デフォルトの名無しさん[sage]   投稿日:2016/11/15 15:51:11  ID:jLBcnaY6.net(3)
アイヤー!

790
デフォルトの名無しさん[sage]   投稿日:2016/11/15 20:24:10  ID:vYoawJH3.net

791
デフォルトの名無しさん[]   投稿日:2016/11/16 02:58:25  ID:fzskfnoe.net
codepadって年はでないのか

792
デフォルトの名無しさん[]   投稿日:2016/11/16 22:36:41  ID:1lDDb3P+.net
ヒープだろうが、スタックだろうが、メモリサイズが有限である以上、
オーバーフローは起こるわな。 馬鹿には永遠に判らんだろうけど。

793
デフォルトの名無しさん[]   投稿日:2016/11/17 11:34:22  ID:u2Ucvcf0.net(5)
情報を保存しながら、進むならば、ループだっていつかオーバーフローする。
保存せずに計算できるならば、再帰でもオーバーフローしないかもしれない。

794
デフォルトの名無しさん[sage]   投稿日:2016/11/17 11:37:48  ID:uGSslZRu.net(2)
誰かの口真似したのかもしれないけどそれは完全に間違ってますよ
コメント1件

795
793[sage]   投稿日:2016/11/17 11:44:39  ID:u2Ucvcf0.net(5)
>794
上の行? 下の行? それとも両方?

796
デフォルトの名無しさん[sage]   投稿日:2016/11/17 12:42:43  ID:uGSslZRu.net(2)

797
793[sage]   投稿日:2016/11/17 13:03:18  ID:u2Ucvcf0.net(5)
>796
Prologですから再帰述語で関数ではありませんが、

repeat :- 割り込みあり,!.
repeat :- repeat.

の場合、スタックの一番上でpop,pushを繰り返すことが可能なのではないでしょうか。
コメント2件

798
797[sage]   投稿日:2016/11/17 13:06:35  ID:u2Ucvcf0.net(5)
すみません。まちがえました。これではrepeat内でのループになってしまって
Prologのrepeatになりませんでした。分かり難くなりますから割り込みを外します。

repeat.
repeat :- repeat.

799
793[sage]   投稿日:2016/11/17 13:16:05  ID:u2Ucvcf0.net(5)
>797 だと、
繰り返しを最終回にするための割り込みとしたかったのですが、
実行開始の遅延を終了するための割り込みになってしまっています。

800
デフォルトの名無しさん[sage]   投稿日:2016/11/17 16:59:20  ID:wwPqulHdC
>790
再帰呼び出ししててワラタ。

801
デフォルトの名無しさん[]   投稿日:2016/11/21 07:42:33  ID:Z9LRReIl.net
>797
どういう条件だとスタックが伸びず、伸びることが不可避なのはどんな場合か。
コメント1件

802
デフォルトの名無しさん[sage]   投稿日:2016/11/21 09:29:48  ID:IXIwDt6r.net
>801
実行時、述語の最後の節で、最後の副目標(サブルーチン呼び出しにあたる)に差し掛かった時に
その節のそれまでの副目標が全て決定性(別解があり得ない)に終了しているという条件で、
この節の呼び出し時点までスタックを戻って、そこに新たな再帰呼出しの情報を積むことができる。
コメント1件

803
デフォルトの名無しさん[sage]   投稿日:2016/11/21 11:07:34  ID:3zR4lbui.net
>802
条件が良すぎる・・・

804
デフォルトの名無しさん[sage]   投稿日:2016/11/21 21:05:43  ID:vOYVrbrF.net
>790
で完璧な回答をみせたはずだが

805
デフォルトの名無しさん[sage]   投稿日:2016/11/21 22:27:59  ID:rblSsrUw.net
好きか嫌いかで言ったら好きだ
趣味以外では使わないけど

806
デフォルトの名無しさん[sage]   投稿日:2016/11/21 23:45:17  ID:7dMNwwBf.net
当然、趣味限定だね

807
デフォルトの名無しさん[sage]   投稿日:2016/11/22 08:09:17  ID:sAluFFeZ.net(3)
再帰がスタックを積むんじゃなくて関数がスタックを積むんちゃうの?
スタックがなければ実現不可能な処理なら、ループで実装してもスタック積むんちゃうの?
コメント1件

808
デフォルトの名無しさん[sage]   投稿日:2016/11/22 11:35:40  ID:Pvp5yOqg.net
スタックって言ってもメモリはリニアなんだぜ

809
デフォルトの名無しさん[sage]   投稿日:2016/11/22 12:37:46  ID:flYh+8oO.net
>807
ループで実現したときはスタックに積まれない。
コメント1件

810
デフォルトの名無しさん[sage]   投稿日:2016/11/22 13:14:00  ID:XwCH+1ok.net
>809
実行系に頼らず自分でスタックを実装するってこどだろ
使用メモリ量が不定なのは一緒

811
デフォルトの名無しさん[sage]   投稿日:2016/11/22 13:44:09  ID:sAluFFeZ.net(3)
スタックが摘まれないなら別物でしょう

812
デフォルトの名無しさん[sage]   投稿日:2016/11/22 13:48:40  ID:sAluFFeZ.net(3)
抽象概念が実体であるかのような基準で話をする人が多すぎる
再帰でスタックが発生するならそれに対比するループも必ず同等のスタック量が発生する。
それでも 「ループで実現したらスタックは積まれない」と言うのなら、それは実現できていない。

抽象概念としての名称は便宜上再帰であるかループであるかの違いはあるが、実体としての処理は必ず同等。
コメント1件

813
デフォルトの名無しさん[sage]   投稿日:2016/11/22 20:27:24  ID:dPiI/ZMV.net
>790
で完璧な回答をみせたはずだが

814
デフォルトの名無しさん[sage]   投稿日:2016/11/26 09:43:28  ID:cQHpTyuw.net(2)
>812
再帰は、入れ子状の関数呼び出しで、呼び出す関数は全部同一だから、
コードは一つで良い。しかし、関数だから呼び出す度にスタックに情報を積むし、
戻ってくるまで、積んである情報をPOPできない。
ただし、関数が末尾に有る時、則ち、戻って来た情報に対して何らかの計算をしてから
情報を返すということがない関数に関しては、戻ってきた値を直接自分の戻す値に
できるわけだから、呼びだされた時の普通なら積む情報を積まずに済ませることが
できるかも知れない。こういうことを「実体」というのですないか?
コメント2件

815
813[save]   投稿日:2016/11/26 09:45:28  ID:cQHpTyuw.net(2)
すみません。最後
こういうことを「実体」というのではないか?
です。

816
デフォルトの名無しさん[]   投稿日:2016/11/26 12:00:32  ID:S9oyLAu3.net

817
デフォルトの名無しさん[sage]   投稿日:2016/12/10 03:10:28  ID:bw+AbQq7.net
>814
根本的には処理もデータも区別なく実体ってことでしょ。
ループ自体も関数自体も実体。

818
デフォルトの名無しさん[sage]   投稿日:2016/12/18 21:34:26  ID:DsS1XQkJ.net
なあ、継続好きな人いる?

819
デフォルトの名無しさん[sage]   投稿日:2016/12/21 13:12:18  ID:gV9REQs2.net
ああ例外出たらすぐ継続押すよ

820
デフォルトの名無しさん[sage]   投稿日:2016/12/22 22:15:49  ID:vkr4xxpW.net
継続は再帰ほど市民権得てないからなぁ。
継続を深く理解しているプログラマは全体の1割に満たないんだろうな。

821
デフォルトの名無しさん[sage]   投稿日:2016/12/22 23:45:06  ID:LE7ZUwY5.net
単純に継続を保証してる言語が少ない

822
デフォルトの名無しさん[sage]   投稿日:2017/01/03 17:56:54  ID:bj+lJcSh.net
物自体の実在性を議論してんのかよ
やっぱ再帰って難しいわ

823
デフォルトの名無しさん[]   投稿日:2017/01/03 18:36:13  ID:YhXp5fO+.net
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
有吉ゼミ豪華新年SP★2 (509)NTV実況
中居正広VS芸能人50人! 世代別クイズバトル ジェネレーションチャンプ★2 (593)テレ朝実況
結婚したら人生劇変!○○の妻たちSP★1 (293)TBS実況
実況 ◆ テレビ朝日 46538 スーパーゆえちゃん (536)テレ朝実況
NHK総合を常に実況し続けるスレ 130065 豊洲市場 (1000)NHK実況
実況 ◆ フジテレビ 82417 (548)フジ実況
痛快TV スカッとジャパン嫌なオンナ撃退2時間SP★1 (439)フジ実況
大相撲初場所 九日目 ☆8 (355)NHK実況
このスレッドが人気です(ニュース系)
【社会】蛮行!!独島に少女像建設へ 京畿道議会の団体が募金開始=韓国 ★6 (402)ニュー速+
【社会】蛮行!!独島に少女像建設へ 京畿道議会の団体が募金開始=韓国 ★5 (1000)ニュー速+
【社会】蛮行!!独島に少女像建設へ 京畿道議会の団体が募金開始=韓国 4 (1000)ニュー速+
【経済】 トランプ氏 「米国でビジネスするなら米国で作れ」 (706)ニュー速+
【国際】メルケル独首相の移民受け入れは「破滅的過ち」 「EUはドイツの道具と化している」・・・トランプ氏 (681)ニュー速+
【ドラマ】キムタク主演「A LIFE」初回視聴率は14・2%★7 (995)音楽・芸能ニュース
【相撲】大相撲一月場所九日目 稀勢に土!角番奨菊がぶり寄り 白鵬連敗!高安兄弟子に援護射撃 鶴竜4敗 貴ノ岩勝ち越し1敗2人 (422)音楽・芸能ニュース
慰安婦像、竹島設置の動き=地方議員が募金開始―韓国 設置されれば日本側の反発は必至 (445)ニュー速+
プログラム板の人気スレ
【統計分析】機械学習・データマイニング11 (857)
C++相談室 part129 (142)
C言語なら俺に聞け 138 (528)
Xamarin Part3 (219)
Excel VBA 質問スレ Part45 (166)
ふらっと C#,C♯,C#(初心者用) Part126 (232)
Visual Studio 2015 Part7 (936)
Androidプログラミング質問スレ revision52 (515)
くだすれPython(超初心者用) その31 (798)
【PHP】下らねぇ質問はここに書き込みやがれ 7 (609)
次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 (441)
スレ立てるまでもない質問はここで 145匹目 (71)
クラス名・変数名に迷ったら書き込むスレ。Part27 (739)
推薦図書/必読書のためのスレッド 80 (947)
+ JavaScript(ECMAScript)質問用スレッド vol.122 + (972)
Swift part9 (556)
☆★Java質問・相談スレッド179★★ (503)
Ruby 初心者スレッド Part 59 (546)
人工知能ディープラーニング機械学習のための数学 (105)
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】 (339)
Java入門・初心者質問スレ Part.2 (290)
【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 (452)
プログラミング言語 Rust 2 (307)
+ JavaScript の質問用スレッド vol.122 + (627)
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 (234)
テストしにくいコードをテストする方法 その2 (50)
Win32API質問箱 Build123 (332)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
Amazon


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 正常取得 - 4件 - 取得完了