なあ、再帰関数好きな人いる? パート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
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s