関数型プログラミング言語Haskell Part34 (677レス)
関数型プログラミング言語Haskell Part34 http://mevius.5ch.net/test/read.cgi/tech/1639713446/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
658: デフォルトの名無しさん [] 2025/02/13(木) 07:10:20.44 ID:NHs8kkcw wikiでghc見たら、中の人MSリサーチにいるのな。 最近C#並みに速くなったと思ったら、そういう事か。 納得。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/658
659: デフォルトの名無しさん [sage] 2025/02/13(木) 13:53:19.78 ID:LmH89MFs 暗記系の問題が嫌われるのは答えを隠す意味がないからだが 逆に陰謀論が大人気なのは、隠蔽する動機があるからかもしれない http://mevius.5ch.net/test/read.cgi/tech/1639713446/659
660: デフォルトの名無しさん [sage] 2025/02/13(木) 19:59:58.08 ID:8vmF21CT >>659 誤爆か? 次から気をつけな http://mevius.5ch.net/test/read.cgi/tech/1639713446/660
661: デフォルトの名無しさん [sage] 2025/02/13(木) 21:57:13.74 ID:FvaixK+o わざとだろ。 数板に延々スレ違を書き込む基地外がいるが多分そいつと同一。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/661
662: デフォルトの名無しさん [sage] 2025/02/13(木) 22:11:56.50 ID:LxUFvhMj ワードサラダくん数学板にもいるんか まあいそうな板だな http://mevius.5ch.net/test/read.cgi/tech/1639713446/662
663: デフォルトの名無しさん [sage] 2025/02/13(木) 23:39:39.86 ID:LmH89MFs 有意味な事実と有意味なデマを隔離するのは難しいらしい だが、真でも偽でもないナンセンスはなぜか瞬時に判断できる http://mevius.5ch.net/test/read.cgi/tech/1639713446/663
664: デフォルトの名無しさん [sage] 2025/03/19(水) 11:03:50.18 ID:JUfTLTVZ IntSetのsizeがO(1)じゃなくO(n)なのはなぜですか、O(1)で実装できそうなもんですが http://mevius.5ch.net/test/read.cgi/tech/1639713446/664
665: デフォルトの名無しさん [sage] 2025/03/19(水) 19:45:13.59 ID:4qyoYSYb unionとかで重複要素数えるのが面倒だから必要になるまで数えない http://mevius.5ch.net/test/read.cgi/tech/1639713446/665
666: デフォルトの名無しさん [] 2025/03/19(水) 20:51:01.02 ID:S6mpqhEQ 私は最強ーーすき http://mevius.5ch.net/test/read.cgi/tech/1639713446/666
667: デフォルトの名無しさん [] 2025/03/19(水) 20:52:16.86 ID:S6mpqhEQ 誤爆スマソ。懐メロチャンネルと間違えた http://mevius.5ch.net/test/read.cgi/tech/1639713446/667
668: デフォルトの名無しさん [] 2025/10/08(水) 08:47:56.03 ID:66xUgFQM int* map(int (*f)(const int), const int* array, const int n){ int* p = malloc(sizeof(int) * n); for(int i = 0; i < n; i++) p[i] = f(array[i]); return p; } ふむ、メモリ管理が必要な言語が(見かけ上)副作用のない関数を作ろうとしたら配列を返す関数の時点で関数を使った後は必ずメモリの開放が必要になるのか。 開放が必要だから、参照を持つためにポインタへの保存が必須なので、関数の連続適用(関数合成)は絶望的。 これじゃ、GCやRustみ
たいな仕組みが必要になるわけだ。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/668
669: デフォルトの名無しさん [sage] 2025/10/08(水) 10:40:05.18 ID:qRy2t+J8 Cで副作用はいうてらんないね。マルチスレッド、再入可能にするところまで出来れば上出来 http://mevius.5ch.net/test/read.cgi/tech/1639713446/669
670: デフォルトの名無しさん [sage] 2025/10/08(水) 13:07:06.38 ID:4LSFWHe4 >>668 30点の理解 http://mevius.5ch.net/test/read.cgi/tech/1639713446/670
671: デフォルトの名無しさん [sage] 2025/10/08(水) 14:05:41.01 ID:JTvRYaZp GC言語はGC使ってる時点で副作用あるやんw メモリ管理他人任せにしてるだけだ http://mevius.5ch.net/test/read.cgi/tech/1639713446/671
672: デフォルトの名無しさん [sage] 2025/10/08(水) 17:42:33.77 ID:1ctt2fBW >>671 −30点 http://mevius.5ch.net/test/read.cgi/tech/1639713446/672
673: デフォルトの名無しさん [] 2025/10/08(水) 18:32:01.08 ID:66xUgFQM >>670 100点満点のご高説をどうぞ。 長文になっても良し。 >>671 実は純粋関数型言語の定義は「副作用も含めて参照透明性が破れていない」なのです。(Wiki調べ) print関数やgetLine関数はどう見ても副作用有るでしょう? でも、モナドのお陰で参照透明性は破れてないんですよ。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/673
674: デフォルトの名無しさん [sage] 2025/10/08(水) 18:44:02.95 ID:N7mcxj5n 副作用は隔離スレへ http://mevius.5ch.net/test/read.cgi/tech/1639713446/674
675: デフォルトの名無しさん [sage] 2025/10/08(水) 18:45:31.77 ID:HFQA1hQ+ なるほどモナドと書き込めばこのスレで副作用の話もできるのですね http://mevius.5ch.net/test/read.cgi/tech/1639713446/675
676: デフォルトの名無しさん [sage] 2025/10/08(水) 23:41:30.24 ID:jkiZK6Mq >>673 ゴールがわからないので100点のご高説は無理だが30点の理由は説明しといてあげる C言語という特定の言語実装における制約がメモリ管理が必要な言語全般に対しても当てはまると考えてるのが根本的な間違い >配列を返す関数の時点で関数を使った後は必ずメモリの開放が必要になるのか。 >>668のコードで(明示的な)メモリ解放が必要になるのはヒープに動的にメモリをアロケートしたからであって配列を返すからではない C言語では配列がfirst class
ではないので配列をそのまま返すことは不可能 C言語でも構造体ならfirst classなので配列という概念を表現した構造体を作って静的配列を返すようにすれば(明示的な)メモリ開放は不要 C言語にはないがジェネリック等の抽象化機構を備えた言語であれば静的配列を使って任意長の配列に対するmap関数も書ける >開放が必要だから、参照を持つためにポインタへの保存が必須 動的にアロケートするものは実行時になるまで必要なメモリサイズがわからないから言語に関係なくポインタ的なものでしか表現しようがない 動的にアロケートしたものだからポインタ
が必須、ヒープに動的にアロケートしたものだから後で(明示的な)開放が必要なのであって、開放が必要だからポインタへの保存が必須という因果関係ではない http://mevius.5ch.net/test/read.cgi/tech/1639713446/676
677: デフォルトの名無しさん [] 2025/10/09(木) 02:23:13.64 ID:j1OYGPg+ >>676 確かにメモリ管理が必要な手続き型言語全般というのは広げすぎたかもしれない。 静的な配列を関数内で作ってポインタを返す形で作ると関数を抜ける際に配列の寿命が尽きる。 (通常、それを避けるために結果を格納するためのポインタを引数で渡す) C言語で関数型言語のmap関数みたいな配列を返す関数が作れるか?と考えると動的に作って、使い終わったら解放する形になるのかなと。 ここへの書き込みが長すぎると怒られたので削除したが、構造体で包むという案
も考えた。 値渡しだからコピーコストがかさむ。 参照渡しだと生の配列と同じ寿命の問題に突き当たる。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/677
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.160s*