関数型プログラミング言語Haskell Part34 (691レス)
関数型プログラミング言語Haskell Part34 http://mevius.5ch.net/test/read.cgi/tech/1639713446/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
684: デフォルトの名無しさん [sage] 2025/10/09(木) 19:31:35.47 ID:XykzCJ/G Haskellは遅延評価だからmapが配列を返してると言えるかあやしい 一般的な関数型言語だと末尾再帰で不必要になる値を再利用(上書き)する あと値が変更されない(immutable)なら参照渡しで共有しても問題ないし 共有するためにimmutableにすると言っても過言ではない http://mevius.5ch.net/test/read.cgi/tech/1639713446/684
685: デフォルトの名無しさん [] 2025/10/09(木) 19:50:16.02 ID:j1OYGPg+ >>684 うん、遅延評価だから基本参照を返してるはず。バード本参照 (なので>>668を書いてみたわけで) immutableなら a = [1..4] b = map (+1) [1..4] print a print b とうコードで output: [0,1,2,3,4] [1,2,3,4,5] になるはず。 Cで参照を共有すると [1,2,3,4,5] [1,2,3,4,5] という困った表示になってしまう。 というかHaskellでも生のリスト[0..4]とmap (+1) [0..4]は参照を共有してない。 共有してるのは[0..4]だけ。 (むしろ共有してないからこそ「富豪プログラミング」とか言われる) http://mevius.5ch.net/test/read.cgi/tech/1639713446/685
686: デフォルトの名無しさん [] 2025/10/09(木) 20:01:16.79 ID:j1OYGPg+ 言ってみればHaskellは新しい参照をどんどん生み出して、不要になった参照はガンガンGCする。 Cはそういうプログラミングには(当たり前だが)向かないし、当たり前にCの方が効率は良い。 人間が書くコードはHaskellみたく数学に近いほど短くなる。 どっちが良いとかじゃなく、何を優先するかという話。 (なのだなぁと、Cでmap関数もどきを書いて再確認した) http://mevius.5ch.net/test/read.cgi/tech/1639713446/686
687: デフォルトの名無しさん [sage] 2025/10/09(木) 20:33:26.39 ID:N3YUsGEr ループ書こうぜ http://mevius.5ch.net/test/read.cgi/tech/1639713446/687
688: デフォルトの名無しさん [sage] 2025/10/09(木) 21:58:50.95 ID:HS++2zZ0 >>682 「ジェネリック等の抽象化機構を備えた言語であれば〜」のところ全然理解してなかったのな >>683 言語の仕様上は値渡しだけど実際にわざわざコピーして渡す必要がない状況ならコンパイラが最適化してコピーしないマシンコード(コピーして渡すのと同じ結果になるマシンコード)を生成するという話 異なるレイヤーを混同してることに気づいてくれ あとHaskellのリストは配列じゃないよ http://mevius.5ch.net/test/read.cgi/tech/1639713446/688
689: デフォルトの名無しさん [] 2025/10/10(金) 05:32:34.82 ID:WzZmvOuY Haskellを勉強したけど何に使えばいいのか分からない 関数型プログラミングで難しい割に、速度が出ないことがわかっているやっぱり速度は正義だろ http://mevius.5ch.net/test/read.cgi/tech/1639713446/689
690: デフォルトの名無しさん [] 2025/10/10(金) 07:17:31.85 ID:G/tXieG5 >>688 ジェネリックはそのうちC++なりJavaなりで試すけど、まだ試してもいないので…。 最適化の方はもうちょい具体的に教えて欲しいかも。 x = 2 * 100を x = 200にするみたいなのは知ってるけど、あんま詳しくない。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/690
691: デフォルトの名無しさん [] 2025/10/10(金) 07:21:42.77 ID:G/tXieG5 >>689 今のHaskellは(中の人がMSに勤め始めてから)C#並みに速くなってるけど、GUIライブラリとか軒並み遅い時代に開発が止まってる…。 しいて言えばYesod使ってWebアプリかな? Mac(Appleシリコン)版があるからiOSアプリのロジック部分とかも行けそう。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/691
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s