なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net (914レス)
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1448704298/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [] 2015/11/28(土) 18:51:38.86 ID:Rc2MJzM/ なあ、再帰関数好きな人いる? http://mevius.5ch.net/test/read.cgi/tech/1448704298/1
788: デフォルトの名無しさん [sage] 2016/11/15(火) 14:10:56.00 ID:NKQgq3zn >>779-782 http://mevius.5ch.net/test/read.cgi/tech/1448704298/788
789: デフォルトの名無しさん [sage] 2016/11/15(火) 15:51:11.27 ID:jLBcnaY6 アイヤー! http://mevius.5ch.net/test/read.cgi/tech/1448704298/789
790: デフォルトの名無しさん [sage] 2016/11/15(火) 20:24:10.55 ID:vYoawJH3 >>779 http://codepad.org/Grt3NsIV http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14142251704 http://mevius.5ch.net/test/read.cgi/tech/1448704298/790
791: デフォルトの名無しさん [] 2016/11/16(水) 02:58:25.42 ID:fzskfnoe codepadって年はでないのか http://mevius.5ch.net/test/read.cgi/tech/1448704298/791
792: デフォルトの名無しさん [] 2016/11/16(水) 22:36:41.79 ID:1lDDb3P+ ヒープだろうが、スタックだろうが、メモリサイズが有限である以上、 オーバーフローは起こるわな。 馬鹿には永遠に判らんだろうけど。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/792
793: デフォルトの名無しさん [] 2016/11/17(木) 11:34:22.18 ID:u2Ucvcf0 情報を保存しながら、進むならば、ループだっていつかオーバーフローする。 保存せずに計算できるならば、再帰でもオーバーフローしないかもしれない。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/793
794: デフォルトの名無しさん [sage] 2016/11/17(木) 11:37:48.10 ID:uGSslZRu 誰かの口真似したのかもしれないけどそれは完全に間違ってますよ http://mevius.5ch.net/test/read.cgi/tech/1448704298/794
795: 793 [sage] 2016/11/17(木) 11:44:39.48 ID:u2Ucvcf0 >>794 上の行? 下の行? それとも両方? http://mevius.5ch.net/test/read.cgi/tech/1448704298/795
796: デフォルトの名無しさん [sage] 2016/11/17(木) 12:42:43.08 ID:uGSslZRu 下 http://mevius.5ch.net/test/read.cgi/tech/1448704298/796
797: 793 [sage] 2016/11/17(木) 13:03:18.99 ID:u2Ucvcf0 >>796 Prologですから再帰述語で関数ではありませんが、 repeat :- 割り込みあり,!. repeat :- repeat. の場合、スタックの一番上でpop,pushを繰り返すことが可能なのではないでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/797
798: 797 [sage] 2016/11/17(木) 13:06:35.00 ID:u2Ucvcf0 すみません。まちがえました。これではrepeat内でのループになってしまって Prologのrepeatになりませんでした。分かり難くなりますから割り込みを外します。 repeat. repeat :- repeat. http://mevius.5ch.net/test/read.cgi/tech/1448704298/798
799: 793 [sage] 2016/11/17(木) 13:16:05.70 ID:u2Ucvcf0 >>797 だと、 繰り返しを最終回にするための割り込みとしたかったのですが、 実行開始の遅延を終了するための割り込みになってしまっています。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/799
800: デフォルトの名無しさん [] 2016/11/21(月) 07:42:33.65 ID:Z9LRReIl >>797 どういう条件だとスタックが伸びず、伸びることが不可避なのはどんな場合か。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/800
801: デフォルトの名無しさん [sage] 2016/11/21(月) 09:29:48.04 ID:IXIwDt6r >>800 実行時、述語の最後の節で、最後の副目標(サブルーチン呼び出しにあたる)に差し掛かった時に その節のそれまでの副目標が全て決定性(別解があり得ない)に終了しているという条件で、 この節の呼び出し時点までスタックを戻って、そこに新たな再帰呼出しの情報を積むことができる。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/801
802: デフォルトの名無しさん [sage] 2016/11/21(月) 11:07:34.14 ID:3zR4lbui >>801 条件が良すぎる・・・ http://mevius.5ch.net/test/read.cgi/tech/1448704298/802
803: デフォルトの名無しさん [sage] 2016/11/21(月) 21:05:43.87 ID:vOYVrbrF >>790 で完璧な回答をみせたはずだが http://mevius.5ch.net/test/read.cgi/tech/1448704298/803
804: デフォルトの名無しさん [sage] 2016/11/21(月) 22:27:59.06 ID:rblSsrUw 好きか嫌いかで言ったら好きだ 趣味以外では使わないけど http://mevius.5ch.net/test/read.cgi/tech/1448704298/804
805: デフォルトの名無しさん [sage] 2016/11/21(月) 23:45:17.54 ID:7dMNwwBf 当然、趣味限定だね http://mevius.5ch.net/test/read.cgi/tech/1448704298/805
806: デフォルトの名無しさん [sage] 2016/11/22(火) 08:09:17.87 ID:sAluFFeZ 再帰がスタックを積むんじゃなくて関数がスタックを積むんちゃうの? スタックがなければ実現不可能な処理なら、ループで実装してもスタック積むんちゃうの? http://mevius.5ch.net/test/read.cgi/tech/1448704298/806
807: デフォルトの名無しさん [sage] 2016/11/22(火) 11:35:40.81 ID:Pvp5yOqg スタックって言ってもメモリはリニアなんだぜ http://mevius.5ch.net/test/read.cgi/tech/1448704298/807
808: デフォルトの名無しさん [sage] 2016/11/22(火) 12:37:46.98 ID:flYh+8oO >>806 ループで実現したときはスタックに積まれない。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/808
809: デフォルトの名無しさん [sage] 2016/11/22(火) 13:14:00.96 ID:XwCH+1ok >>808 実行系に頼らず自分でスタックを実装するってこどだろ 使用メモリ量が不定なのは一緒 http://mevius.5ch.net/test/read.cgi/tech/1448704298/809
810: デフォルトの名無しさん [sage] 2016/11/22(火) 13:44:09.96 ID:sAluFFeZ スタックが摘まれないなら別物でしょう http://mevius.5ch.net/test/read.cgi/tech/1448704298/810
811: デフォルトの名無しさん [sage] 2016/11/22(火) 13:48:40.05 ID:sAluFFeZ 抽象概念が実体であるかのような基準で話をする人が多すぎる 再帰でスタックが発生するならそれに対比するループも必ず同等のスタック量が発生する。 それでも 「ループで実現したらスタックは積まれない」と言うのなら、それは実現できていない。 抽象概念としての名称は便宜上再帰であるかループであるかの違いはあるが、実体としての処理は必ず同等。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/811
812: デフォルトの名無しさん [sage] 2016/11/22(火) 20:27:24.28 ID:dPiI/ZMV >>790 で完璧な回答をみせたはずだが http://mevius.5ch.net/test/read.cgi/tech/1448704298/812
813: デフォルトの名無しさん [sage] 2016/11/26(土) 09:43:28.08 ID:cQHpTyuw >>811 再帰は、入れ子状の関数呼び出しで、呼び出す関数は全部同一だから、 コードは一つで良い。しかし、関数だから呼び出す度にスタックに情報を積むし、 戻ってくるまで、積んである情報をPOPできない。 ただし、関数が末尾に有る時、則ち、戻って来た情報に対して何らかの計算をしてから 情報を返すということがない関数に関しては、戻ってきた値を直接自分の戻す値に できるわけだから、呼びだされた時の普通なら積む情報を積まずに済ませることが できるかも知れない。こういうことを「実体」というのですないか? http://mevius.5ch.net/test/read.cgi/tech/1448704298/813
814: 813 [save] 2016/11/26(土) 09:45:28.00 ID:cQHpTyuw すみません。最後 こういうことを「実体」というのではないか? です。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/814
815: デフォルトの名無しさん [] 2016/11/26(土) 12:00:32.51 ID:S9oyLAu3 >>813 なんでも継続 http://practical-scheme.net/docs/cont-j.html http://mevius.5ch.net/test/read.cgi/tech/1448704298/815
816: デフォルトの名無しさん [sage] 2016/12/10(土) 03:10:28.97 ID:bw+AbQq7 >>813 根本的には処理もデータも区別なく実体ってことでしょ。 ループ自体も関数自体も実体。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/816
817: デフォルトの名無しさん [sage] 2016/12/18(日) 21:34:26.37 ID:DsS1XQkJ なあ、継続好きな人いる? http://mevius.5ch.net/test/read.cgi/tech/1448704298/817
818: デフォルトの名無しさん [sage] 2016/12/21(水) 13:12:18.95 ID:gV9REQs2 ああ例外出たらすぐ継続押すよ http://mevius.5ch.net/test/read.cgi/tech/1448704298/818
819: デフォルトの名無しさん [sage] 2016/12/22(木) 22:15:49.61 ID:vkr4xxpW 継続は再帰ほど市民権得てないからなぁ。 継続を深く理解しているプログラマは全体の1割に満たないんだろうな。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/819
820: デフォルトの名無しさん [sage] 2016/12/22(木) 23:45:06.84 ID:LE7ZUwY5 単純に継続を保証してる言語が少ない http://mevius.5ch.net/test/read.cgi/tech/1448704298/820
821: デフォルトの名無しさん [sage] 2017/01/03(火) 17:56:54.67 ID:bj+lJcSh 物自体の実在性を議論してんのかよ やっぱ再帰って難しいわ http://mevius.5ch.net/test/read.cgi/tech/1448704298/821
822: デフォルトの名無しさん [] 2017/01/03(火) 18:36:13.80 ID:YhXp5fO+ 不具合っぽい http://hatenachips.blog34.fc2.com/blog-entry-455.html http://mevius.5ch.net/test/read.cgi/tech/1448704298/822
823: デフォルトの名無しさん [] 2017/02/11(土) 02:50:31.54 ID:JwDD7IDr 私は再帰の塊のようなプログラムを作ったことがある。 DirBaseだ。 起動後のウィンドウにエクスプローラからファイルやフォルダを ドラグ&ドロップするだけで簡単にツリーができる。 DirBaseで検索すれば、ダウンロードできる。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/823
824: デフォルトの名無しさん [] 2017/02/11(土) 02:54:10.46 ID:JwDD7IDr DirBaseのダウンロード先 http://www10.plala.or.jp/dir-base/ http://mevius.5ch.net/test/read.cgi/tech/1448704298/824
825: デフォルトの名無しさん [] 2017/02/16(木) 15:31:02.48 ID:VWTLMYuE 競プラではforループが盛んらしいが、言語開発者としては再起の方が使って欲しい ソースは俺が今朝見た夢 http://mevius.5ch.net/test/read.cgi/tech/1448704298/825
826: デフォルトの名無しさん [sage] 2017/03/10(金) 23:51:10.10 ID:Ra0Xudwq おまえらBrain f**kでも再帰できんの? http://mevius.5ch.net/test/read.cgi/tech/1448704298/826
827: デフォルトの名無しさん [sage] 2017/09/21(木) 16:49:36.88 ID:na02B6ss >>819 ん?setjmp/longjmp のことですか? http://mevius.5ch.net/test/read.cgi/tech/1448704298/827
828: デフォルトの名無しさん [] 2017/10/03(火) 20:26:43.27 ID:GaATZUfo (数値計算を主体とする)関数では使わないけど、 再帰ルーチンで使用頻度が激しいのは、外部記憶装置を含めた初期化ルーチン。 一つのルーチンで、内部記憶(主記憶装置)と外部記憶(HDD等)の出入りを管理している場合に、 初期化ルーチンで外部記憶が存在しない場合には、ルーチンで保存している定数を読みだして、外部記憶に保存する。 初期化ルーチンからの定数の読み出し・外部への保存が再起処理。 初期化ルーチン以外では使わない手法。 分割して作成すると、何年か後に見直した時に、どのように初期化しているのかわからない、という事態になることが多発したので、 初期化が必要な場合には、このような手法で同一ルーチン内に収めるようにした。 もっとも一番利用頻度の高いのは、Winでは、ダイアログボックスのプロシージャ。再起の塊で、何をしているのかわからなくなってくる。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/828
829: デフォルトの名無しさん [] 2018/01/28(日) 06:23:28.69 ID:GN9YKPqU 再帰プログラムは関数の呼び出しで積みあがるスタックを配列とみなせば、ループアルゴリズムそのものだ。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/829
830: デフォルトの名無しさん [] 2018/01/28(日) 06:51:19.47 ID:GN9YKPqU ファイルやフォルダ、ダイアログやウインドウは階層構造で構成されるので、再帰プログラムを使うのが一般的だ。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/830
831: デフォルトの名無しさん [sage] 2018/01/28(日) 15:26:22.97 ID:Erw8GBm0 再帰って何?って頃から普通に再帰使ってたからなあ。 自分自身を呼び出せば良いじゃんみたいな。 高校で数列とか演繹法が得意だったせいかも。 自然に使ってた。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/831
832: デフォルトの名無しさん [sage] 2018/01/28(日) 16:28:26.35 ID:C2Jb//yt 再帰云々言ってるのは大昔のFORTRANとかCOBOLを使ってた人ぐらいじゃないのかな あと組み込みとかでスタックサイズが厳しい環境で組んでるとか http://mevius.5ch.net/test/read.cgi/tech/1448704298/832
833: デフォルトの名無しさん [sage] 2018/01/28(日) 17:26:40.96 ID:OfpblgeM スタックサイズが厳しい環境で再起??? http://mevius.5ch.net/test/read.cgi/tech/1448704298/833
834: デフォルトの名無しさん [] 2018/01/28(日) 18:03:09.52 ID:GN9YKPqU 再帰プログラムの基本はスタックにデータを入れ積み上げていく過程と、スタックからデータを取り出しスタックをクリアしていく過程の二つの動作しか基本的にない。 データを取り出したら、そのデータを使ってプログラミングされた処理を実行する。スタックはデータを貯めることと同時に処理の順番を決めている。再帰のプログラミングには二つの概念が必要だ。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/834
835: デフォルトの名無しさん [sage] 2018/02/12(月) 05:25:54.58 ID:P5QW/rJt 再帰関数大好きですよ 美しい http://mevius.5ch.net/test/read.cgi/tech/1448704298/835
836: デフォルトの名無しさん [sage] 2018/02/23(金) 11:23:42.25 ID:cixhX8OH javaで再起処理書いたらガーベッジコレクションが掃除してくれるもんだと思ってたけど違うの? 十年前の記憶だから曖昧ですまない cpu使用率が100%になるけど影響ないから使ってます〜って顧客に言われたのを思い出したもんやで http://mevius.5ch.net/test/read.cgi/tech/1448704298/836
837: デフォルトの名無しさん [sage] 2018/02/23(金) 11:24:04.87 ID:cixhX8OH 再帰だった http://mevius.5ch.net/test/read.cgi/tech/1448704298/837
838: デフォルトの名無しさん [] 2018/02/23(金) 12:18:58.87 ID:E8zJnigo 影響ないなら気にすんな http://mevius.5ch.net/test/read.cgi/tech/1448704298/838
839: デフォルトの名無しさん [] 2018/05/23(水) 20:21:54.46 ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 980U0 http://mevius.5ch.net/test/read.cgi/tech/1448704298/839
840: デフォルトの名無しさん [] 2018/07/05(木) 01:23:47.56 ID:RfoszcD2 TB1 http://mevius.5ch.net/test/read.cgi/tech/1448704298/840
841: デフォルトの名無しさん [sage] 2018/08/22(水) 21:16:42.10 ID:mHU9sjBy 今時スタックオーバフローぐらいでOSは死なないから大丈夫 http://mevius.5ch.net/test/read.cgi/tech/1448704298/841
842: デフォルトの名無しさん [sage] 2018/08/23(木) 09:46:53.93 ID:n+qAvZtC スタックオーバフローならアプリは落ちちゃう http://mevius.5ch.net/test/read.cgi/tech/1448704298/842
843: デフォルトの名無しさん [sage] 2018/08/24(金) 14:39:50.27 ID:1snHtaDM 末尾再帰すればいいじゃない。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/843
844: デフォルトの名無しさん [sage] 2018/11/14(水) 23:02:37.97 ID:ur2RK8H0 再帰アルゴリズムはなるべくライブラリで隠蔽して欲しいな。 自分で書くのはまだしも他人の再帰コードを読むのはかなり嫌。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/844
845: デフォルトの名無しさん [] 2018/11/15(木) 12:26:32.11 ID:yIPB3Fsn 好きなんか嫌いなんかハッキリしろや http://mevius.5ch.net/test/read.cgi/tech/1448704298/845
846: デフォルトの名無しさん [sage] 2018/11/15(木) 16:20:13.76 ID:PG86imds 末尾再帰は結局ただのループ http://mevius.5ch.net/test/read.cgi/tech/1448704298/846
847: デフォルトの名無しさん [] 2018/11/15(木) 16:22:56.36 ID:zCiKr9uf 再帰関数と言えばアッカーマン関数とかたらい回し関数などが 有名ですが他にも何かある? http://mevius.5ch.net/test/read.cgi/tech/1448704298/847
848: デフォルトの名無しさん [] 2018/11/15(木) 21:36:15.07 ID:sS26qanx 有名じゃないからwどんな入りかたしたんおまえw http://mevius.5ch.net/test/read.cgi/tech/1448704298/848
849: デフォルトの名無しさん [] 2018/11/16(金) 07:45:28.14 ID:Q+Zstbtj 174 その名前は774人います (バットンキン MM5a-fW3D) 2018/11/16(金) 07:04:12.40 ID:N77Q/1ZeM >ドラゴンクエストの世界観が全く反映されていないような印象 ド ラ ゴ ン ク エ ス ト と は 何 か ? ドラゴンクエストとは何かを問い続けるのが、終わらないドラゴンクエストだろう? 違うか? 2 その名前は774人います (バットンキン MM5a-fW3D) 2018/11/16(金) 07:42:40.97 ID:N77Q/1ZeM 再帰関数を理解するにあたり先輩社員に教えていただいたのですが、その時の再帰関数の例がとてもわかりやすかったので共有させていただきます。 この例のおかげもあり、はじめは再帰関数なにそれ状態から、最後はしっかりと実装できるようになりました。再帰関数はPythonで実装しています。 https://qiita.com/jumpyoshim/items/20e6b5e70efa466699b4 http://mevius.5ch.net/test/read.cgi/tech/1448704298/849
850: デフォルトの名無しさん [] 2018/11/16(金) 23:40:45.23 ID:HodhQ/sE 問) 再帰的にオマンコを定義せよ http://mevius.5ch.net/test/read.cgi/tech/1448704298/850
851: デフォルトの名無しさん [] 2018/11/16(金) 23:59:40.68 ID:xavUeX/s 再帰関数『終わらないドラゴンクエスト』 ドラゴンクエストとは?(){ ドラゴンクエストとは?() } http://mevius.5ch.net/test/read.cgi/tech/1448704298/851
852: デフォルトの名無しさん [] 2018/11/17(土) 00:12:17.17 ID:eQWBxdMf 正直小学生のガチネタにはついていけん http://mevius.5ch.net/test/read.cgi/tech/1448704298/852
853: デフォルトの名無しさん [] 2018/11/17(土) 03:28:35.36 ID:corCuJCM def DQ(n) puts "DQ #{n}" DQ(n+1) end http://mevius.5ch.net/test/read.cgi/tech/1448704298/853
854: デフォルトの名無しさん [] 2018/11/17(土) 10:42:46.80 ID:B4GISbTr ({}) http://mevius.5ch.net/test/read.cgi/tech/1448704298/854
855: デフォルトの名無しさん [] 2018/12/16(日) 22:50:52.23 ID:EHgXXRnO バブルソート中 http://mevius.5ch.net/test/read.cgi/tech/1448704298/855
856: デフォルトの名無しさん [] 2018/12/16(日) 22:56:36.33 ID:/PxsPleo http://xn--4gq15ldsheocf87g9uc.com/ http://mevius.5ch.net/test/read.cgi/tech/1448704298/856
857: デフォルトの名無しさん [] 2018/12/18(火) 11:28:45.03 ID:/M0/bFGF グロ中尉 http://mevius.5ch.net/test/read.cgi/tech/1448704298/857
858: デフォルトの名無しさん [] 2019/03/20(水) 19:02:56.05 ID:DvYG4dOj >>1 好き嫌いの問題じゃないと思うが、理論上再起かそれと同等の内部処理履歴を残さないと実現できない処理なら、使うだろう 再起にならざるを得ない具体的な数学(科学)的な条件は忘れたが、けっこう複雑な処理じゃない限り再起じゃなくても実現できたように思う http://mevius.5ch.net/test/read.cgi/tech/1448704298/858
859: デフォルトの名無しさん [sage] 2019/03/21(木) 01:23:23.96 ID:b2sujHog >>858 「再起」じゃなくて「再帰」ね スタックを使えば、つまりメモリを余分に使用することを認めれば 再帰はループに書き換えることができるから 再帰でなければ出来ないことは原理的に存在しない 更に言えば関数を受け取りまた返す高階関数があれば いわゆる不動点演算子に相当するものが書けるので 関数の再帰的定義は不要になる http://mevius.5ch.net/test/read.cgi/tech/1448704298/859
860: デフォルトの名無しさん [sage] 2019/03/21(木) 03:46:03.75 ID:v9ozWdAP 論理的にはクイックソートよりマージソートが好き。 実用性はクイックソートが上なのかな? http://mevius.5ch.net/test/read.cgi/tech/1448704298/860
861: デフォルトの名無しさん [sage] 2019/03/21(木) 08:59:54.71 ID:eS2pMQJr >>859 >再帰はループに書き換えることができるから そのループ再帰だよ・・・ 再帰の問題点もそのまま同等に引き継いでるよ・・・ http://mevius.5ch.net/test/read.cgi/tech/1448704298/861
862: デフォルトの名無しさん [sage] 2019/03/21(木) 10:49:54.63 ID:uohid6CT ループも不動点演算子も再帰関数の実装の仕方でしかない http://mevius.5ch.net/test/read.cgi/tech/1448704298/862
863: デフォルトの名無しさん [] 2019/03/22(金) 06:20:32.16 ID:t/nkQ3ne リストに対してはクイックソートやマージソートより選択ソートや挿入ソートのが速かった。 ケースによって使い分けるために色んなソートがあるんだなと実感した。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/863
864: デフォルトの名無しさん [] 2019/03/22(金) 18:03:42.63 ID:GIrPmH5o どうゆう状況でそんなことが起こるのか想像できない http://mevius.5ch.net/test/read.cgi/tech/1448704298/864
865: デフォルトの名無しさん [sage] 2019/03/22(金) 20:18:00.83 ID:UnYyaz4E リストってリンクリストってこと? http://mevius.5ch.net/test/read.cgi/tech/1448704298/865
866: デフォルトの名無しさん [sage] 2019/03/22(金) 23:38:43.20 ID:bs44Fjbm >>861 ループと再帰とは違うよ 更に言えば高階関数があればループも再帰も必要ない 不動点演算子もループも再帰だと言うのはナンセンスだ それは「再帰と同じだ」と君が思うものを再帰と呼ぶ、と主張しているに等しい こんな君だけの主観による再帰の定義では議論にならない http://mevius.5ch.net/test/read.cgi/tech/1448704298/866
867: デフォルトの名無しさん [sage] 2019/03/23(土) 01:46:30.69 ID:05rjzlE7 チューリング完全なんだからどの言語でも一緒、という暴論と同程度に「ループと再帰は同じ」も暴論 コンピュータからみた話じゃなくて、プログラムを書く人にとってループと再帰が同価値なのかが問題になる 自分は、複雑でも読み溶ける再帰の方が好き。ループが複雑になると、どの変数がいつのどの値を持っているのか追いきれなくなる 再帰で同程度に複雑な処理を書くと、引数の数やら名前からすぐにヤバイ臭いがするんでそんなに腐らない http://mevius.5ch.net/test/read.cgi/tech/1448704298/867
868: デフォルトの名無しさん [sage] 2019/03/23(土) 04:14:05.11 ID:FVLL7ja7 末尾再帰にすると結局for文とやってることが一緒になる http://mevius.5ch.net/test/read.cgi/tech/1448704298/868
869: デフォルトの名無しさん [] 2019/03/23(土) 04:46:27.26 ID:abrpiqJH モナドな再帰(IOモナドやリスト->リストな再帰)は単純な再帰でもスタック消費しない。 繰り返しコードの単純さは再帰>末尾再帰>=ループ。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/869
870: デフォルトの名無しさん [sage] 2019/04/03(水) 19:48:29.75 ID:mixCZYtf 非同期処理の終了を待って、次の繰り返しを行う 再帰でなければ書けない http://mevius.5ch.net/test/read.cgi/tech/1448704298/870
871: デフォルトの名無しさん [sage] 2019/04/03(水) 19:55:40.32 ID:EqbpbXJ3 ダウト http://mevius.5ch.net/test/read.cgi/tech/1448704298/871
872: デフォルトの名無しさん [sage] 2019/04/04(木) 16:23:32.66 ID:GBwqjObH >>871 非同期処理の終了はイベントやコールバックで通知されるものとする 終了を待つ同期プリミティブは存在しない Javascriptだとこれが普通で、繰り返しでは書けない http://mevius.5ch.net/test/read.cgi/tech/1448704298/872
873: デフォルトの名無しさん [sage] 2019/04/04(木) 20:54:30.86 ID:1bkj1Cge 納得 http://mevius.5ch.net/test/read.cgi/tech/1448704298/873
874: デフォルトの名無しさん [] 2019/04/05(金) 00:21:14.27 ID:ZWKOySqx async/await が JavaScript の新しい仕様として入ったのも知らんのか http://mevius.5ch.net/test/read.cgi/tech/1448704298/874
875: デフォルトの名無しさん [sage] 2019/04/05(金) 12:13:43.00 ID:dQkyjbHg await/asyncの仕組みを知らないと見える それ使って、繰り返しで書いてみなよ http://mevius.5ch.net/test/read.cgi/tech/1448704298/875
876: デフォルトの名無しさん [sage] 2019/04/05(金) 12:38:19.58 ID:dQkyjbHg やっぱ、await/asyncで出来そうな気がしてきた http://mevius.5ch.net/test/read.cgi/tech/1448704298/876
877: デフォルトの名無しさん [sage] 2019/04/06(土) 00:52:53.01 ID:mONJLbhR rx最強説 http://mevius.5ch.net/test/read.cgi/tech/1448704298/877
878: デフォルトの名無しさん [sage] 2019/04/15(月) 22:24:35.37 ID:SVQji9la >>867 違うよ 柴犬にこっちは太郎でこっちは次郎だから別の犬だ、と言ってるのと同じ http://mevius.5ch.net/test/read.cgi/tech/1448704298/878
879: デフォルトの名無しさん [] 2019/06/19(水) 04:57:19.87 ID:tVNS+22r 【出資】松本卓朗 人工知能詐欺【注意】 https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/ http://mevius.5ch.net/test/read.cgi/tech/1448704298/879
880: デフォルトの名無しさん [] 2019/06/19(水) 05:49:29.73 ID:K5sVxx6Y 再帰処理は 現在の関数が戻ってゆくアドレスをスタックに保存し、このアドレスを積極的に利用する。 プログラミングの実行アドレスをスタックから取り出して制御するので、 再帰プログラミングを利用するコツは、戻りアドレスを正しく理解することだ。 再帰は同じ関数を行ったり来たりするものだが、 日常の社会では、やらない方法だ。 普通は、配列を利用して、そこに保存してあるデータを使い、 同じ場所でプログラムを実行する http://mevius.5ch.net/test/read.cgi/tech/1448704298/880
881: デフォルトの名無しさん [sage] 2019/06/19(水) 22:51:46.77 ID:cv5jOa1Y ツリーたどるときくらいかな?再帰使うの http://mevius.5ch.net/test/read.cgi/tech/1448704298/881
882: デフォルトの名無しさん [sage] 2019/06/22(土) 10:20:48.19 ID:hB2G8Ayg >>881 そらまあ再起が辿るイメージ図は全てツリーって名称付けれますし http://mevius.5ch.net/test/read.cgi/tech/1448704298/882
883: デフォルトの名無しさん [sage] 2019/07/31(水) 11:07:40.57 ID:w173sz60 ゲーム作るときになってようやく再帰の恩恵を得た めっちゃ書きやすい http://mevius.5ch.net/test/read.cgi/tech/1448704298/883
884: デフォルトの名無しさん [sage] 2019/08/01(木) 21:15:40.67 ID:C2rSdv5Y >>883 ミニマックス法かアルファベータ法だろ? http://mevius.5ch.net/test/read.cgi/tech/1448704298/884
885: デフォルトの名無しさん [sage] 2020/01/03(金) 14:12:37.35 ID:EVicjzWY マイコンだとスタックが1桁とかだから再帰書いた瞬間に死ぬ http://mevius.5ch.net/test/read.cgi/tech/1448704298/885
886: デフォルトの名無しさん [sage] 2020/01/04(土) 20:06:07.86 ID:q1efSz+a ルネサスのRL78/G10はRAMが128Byteしかないらしいな http://mevius.5ch.net/test/read.cgi/tech/1448704298/886
887: デフォルトの名無しさん [sage] 2020/12/05(土) 18:00:57.46 ID:6KCHBqfq 再帰 >>887 http://mevius.5ch.net/test/read.cgi/tech/1448704298/887
888: デフォルトの名無しさん [] 2021/01/11(月) 13:49:06.57 ID:nJc/cTVc λf . (λx . f (x x)) (λx . f (x x)) http://mevius.5ch.net/test/read.cgi/tech/1448704298/888
889: デフォルトの名無しさん [sage] 2021/01/13(水) 14:49:33.89 ID:tLUt5qTN ループで書くと出現する余計な変数がなくなるのが再帰のメリット http://mevius.5ch.net/test/read.cgi/tech/1448704298/889
890: ◆QZaw55cn4c [sage] 2021/01/13(水) 21:38:42.47 ID:DfoNX22P >>889 ? kwsk ループ変数は再帰関数でも必要なのでは? http://mevius.5ch.net/test/read.cgi/tech/1448704298/890
891: デフォルトの名無しさん [sage] 2021/01/14(木) 06:32:41.62 ID:7/cCpBde どんどんスタックにつめば確かにループ変数はいらない ただ、人間のためにループ変数はあった方かいいと思うけど http://mevius.5ch.net/test/read.cgi/tech/1448704298/891
892: デフォルトの名無しさん [] 2021/01/27(水) 21:57:40.49 ID:fE6h5Ua/ 再帰関数を理解したとき、最初にこれ考えたやつは天才だと思ったね 実行速度やスタック問題はともかくコードは見ていて美しい以外の何者でもない。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/892
893: デフォルトの名無しさん [sage] 2021/01/28(木) 02:47:34.69 ID:ggjwGOj3 CやUnix、オブジェクト指向なんかよりもはるかに古いんだよな 最初に実装されたのはlispかな メモリを食いすぎるのでおもちゃしか動かなかったようだが http://mevius.5ch.net/test/read.cgi/tech/1448704298/893
894: デフォルトの名無しさん [sage] 2021/01/29(金) 03:09:35.61 ID:5NtPwDh4 今の時代メモリ食いすぎても動くし遅くもならないよな 1億再帰とかやったら話は別だけど http://mevius.5ch.net/test/read.cgi/tech/1448704298/894
895: デフォルトの名無しさん [sage] 2021/07/16(金) 14:24:10.16 ID:S3gddm5/ >>890 要らない /* n の階乗を求める */ int fact(int n) { if(n==0){ return 1; } else { return fact(n-1); } } 実質ループする処理だけど、ループの回数数えるための 変数は一切出現しない。なおかつ n は不変。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/895
896: デフォルトの名無しさん [sage] 2021/07/16(金) 14:26:08.03 ID:S3gddm5/ おお、"n*" を忘れた。こんな短い関数にバグ突っ込む俺(泣) http://mevius.5ch.net/test/read.cgi/tech/1448704298/896
897: デフォルトの名無しさん [sage] 2021/07/19(月) 22:18:11.50 ID:hlpOkuZF くだらん処理にスタックを使いたくないのでわしは使わん ライブラリが殆ど無いマイナーCPUのマイナーCコンパイラでQuickSortを書いた時くらいじゃケケケ http://mevius.5ch.net/test/read.cgi/tech/1448704298/897
898: デフォルトの名無しさん [sage] 2021/07/22(木) 20:45:12.08 ID:sSLTRpJ4 最近じゃオプティマイザがなるべくスタック使わないように 最適化してくれるんじゃなかったっけ? http://mevius.5ch.net/test/read.cgi/tech/1448704298/898
899: ハノン ◆QZaw55cn4c [sage] 2021/07/25(日) 23:45:12.36 ID:rUybnQpf >>898 末尾再帰ならそうだと思いますが、末尾再帰でなければ無理でしょう >>896-897 は末尾再帰じゃないから最適化されにくい、というか、されない http://mevius.5ch.net/test/read.cgi/tech/1448704298/899
900: デフォルトの名無しさん [sage] 2021/10/02(土) 15:46:41.87 ID:qz0ghb/n >>8 ループと再帰の能力は同じです かなり古い計算論の結果です http://mevius.5ch.net/test/read.cgi/tech/1448704298/900
901: デフォルトの名無しさん [sage] 2021/10/02(土) 15:52:22.08 ID:qz0ghb/n >>892 ゲーデル先生 http://mevius.5ch.net/test/read.cgi/tech/1448704298/901
902: デフォルトの名無しさん [sage] 2021/10/02(土) 16:12:27.49 ID:qz0ghb/n >>899 結合法則を仮定していいドメインなら CPS変換を用いて最適化する手法が随分前からあります 結合法則はGPU並列化でも使われてます 浮動小数点の場合は工夫しないと誤差が変わりますが ちなみにC++ conceptの初期案でもaxiomで法則を記述出来ました http://mevius.5ch.net/test/read.cgi/tech/1448704298/902
903: ハノン ◆QZaw55cn4c [sage] 2021/10/02(土) 20:52:53.81 ID:7AkA9F3V >>902 scheme の継続渡しに関係しますか? キーワードありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1448704298/903
904: デフォルトの名無しさん [sage] 2021/10/04(月) 21:48:56.27 ID:tW+d3xqB >>903 そう Continuation-passing style, defunctionalization, and associativity Categorical Structure of ContinuationPassing Style この辺のサンプルプログラム読んで http://mevius.5ch.net/test/read.cgi/tech/1448704298/904
905: デフォルトの名無しさん [sage] 2021/11/01(月) 12:26:41.37 ID:ZNnEkaFK 履歴をとってるループが再帰 http://mevius.5ch.net/test/read.cgi/tech/1448704298/905
906: デフォルトの名無しさん [] 2022/09/07(水) 22:59:05.75 ID:hj8+EGae すき しかし再帰絶対書かないマンが思いの外多くて草生えるわ 末尾最適化できない再起をループに展開したって結局キューだのスタックオブジェクトでヒープ使うわけで メモリ大幅に節約できると勘違いしてる基地外とか話にならん 再帰深度がたかだか1000段とかでスタックフレームにデカいオブジェクトブチ込んだりしなきゃ 素直に再帰で組むのがいいに決まってるじゃないか 数学的演算でもしない限り業務用でスタック溢れるケースを探す方が大変 http://mevius.5ch.net/test/read.cgi/tech/1448704298/906
907: デフォルトの名無しさん [] 2022/09/08(木) 09:28:47.03 ID:JEMfdspa スタックとヒープは別物 共有してるアーキテクチャもあるが http://mevius.5ch.net/test/read.cgi/tech/1448704298/907
908: デフォルトの名無しさん [sage] 2022/09/08(木) 13:02:30.59 ID:o4zCWVHV ループに展開できる処理をわざわざ再帰で書く奴も大概やけどな。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/908
909: デフォルトの名無しさん [sage] 2022/09/08(木) 15:04:24.55 ID:wt4RcFVD 展開できないものあるの http://mevius.5ch.net/test/read.cgi/tech/1448704298/909
910: ハノン ◆QZaw55cn4c [sage] 2022/09/11(日) 14:15:38.74 ID:gVwBfSXr >>909 二方向に再帰するもの、は展開に苦労しますね 式の評価は、再帰じゃないと書けないですね http://mevius.5ch.net/test/read.cgi/tech/1448704298/910
911: デフォルトの名無しさん [sage] 2022/09/15(木) 12:56:10.95 ID:LWNlvRIc てst http://mevius.5ch.net/test/read.cgi/tech/1448704298/911
912: デフォルトの名無しさん [] 2024/01/02(火) 13:18:51.50 ID:yx0oLXiq 再帰的データ構造は再帰でたどるのが楽なんだけど ループで処理したほうが途中で抜けたり処理を組み合わせやすい そこで再帰的な処理を遅延リストと組み合わせてループで処理するやり方がいまでは一般的な気がする こういうふうに C# https://paiza.io/projects/WbmxzuNdJq95o9RYTKFY_A http://mevius.5ch.net/test/read.cgi/tech/1448704298/912
913: デフォルトの名無しさん [sage] 2024/01/04(木) 11:34:09.71 ID:iR4GsMlV 何が一般的なのか知らんがかなり変態的なコードだな ループでGetEnumerator呼び出したりMoveNextの戻り値を見ずCurrentを取り出したりは一般的じゃないぞ つーかバグだろそれ http://mevius.5ch.net/test/read.cgi/tech/1448704298/913
914: デフォルトの名無しさん [sage] 2024/11/23(土) 05:47:56.88 ID:dIdD47Ip 将棋やオセロ、ぷよぷよなんかは再帰処理使うよね http://mevius.5ch.net/test/read.cgi/tech/1448704298/914
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s