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