[過去ログ] 関数型プログラミング言語Haskell Part33 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
88(1): デフォルトの名無しさん [sage] 2020/03/27(金)19:40:29.88 ID:US1WE8+5(1)
>>83
目的は良いプログラムを書くことではなく役に立つプログラムを書くことだろう
お前のようにそこを履き違えてる奴が多いからHaskellがいつまでもクソの役にも立たないと言われ続けるんだよ
99: デフォルトの名無しさん [sage] 2020/03/27(金)21:17:09.88
言語設計者じゃなければ難しいこと考える必要なんてないんだ。ただの Haskell ユーザだろ?
(Haskellの)モナドは Haskell という基盤上で動作するDSLプラットフォームだよ。
各々が Haskell 上で動作するオレオレ言語を作れるんだ。
だから一度それを走らせれば、その中に他人の言語が干渉することはできない。
C++を書いてる途中でJavaコードを直接混ぜることは許されないというトートロジー。
他のDSLとはポートを作ってそこでデータを輸出入する
(Haskellの)モナドはC++コードにJavaコードが混ざらない事を保証してくれる
そういうイメージ
(Haskellの)モナドのライブラリには、その設計者の思想によるDSLの書き方がある。
それを知らずに型とだけ睨めっこしててもIQテストだよ
407: デフォルトの名無しさん [sage] 2020/08/21(金)22:34:08.88 ID:nqLClnr+(1/2)
>>403
単純に
>f (g (z x))は(f . g. z) xと等価です。
は、数学と同じ優先順位ですよってことじゃない?
それ以上の疑問は抱かんかったけど
試してないけど、俺も>>404に同意
多分整数演算で除算演算の関数を関数合成すれば、いくつか試せば同一にならないのは簡単に見つかるはず
引数をたくさん試すだけでも見つかりそう めんどこっいのでやらないけど
464: デフォルトの名無しさん [sage] 2020/09/04(金)20:35:32.88 ID:4VK1Z/Kj(1)
何を期待して借りたのやら
481: デフォルトの名無しさん [] 2020/09/07(月)17:57:43.88 ID:kXMphwO9(1)
>>480
ベーシック圏論はどうですか?
506: デフォルトの名無しさん [] 2020/09/13(日)08:12:50.88 ID:Tso/1gLY(1/3)
ひ?何言ってんの
587: デフォルトの名無しさん [sage] 2020/11/23(月)13:29:17.88 ID:XIoHPhIo(2/2)
>>586
いいね!
617: デフォルトの名無しさん [] 2020/12/20(日)18:18:16.88 ID:FMam64CT(1/2)
ネタを拝借して、次のコードを考える。
``` haskell
inc :: (Applicative f) => Int -> f Int
inc n = pure (n + 1)
lhs :: (Int -> () -> String) -> Int -> IO String
lhs dump x = do
y <- inc x
z <- print y
pure $ dump y z
rhs :: (Int -> () -> String) -> Int -> IO String
rhs dump x = inc x >>= \y -> dump y <$> print y
lhs ((.) show . (,)) 123 >>= print
rhs ((.) show . (,)) 123 >>= print
lhs (const . const "hello") 123 >>= print
rhs (const . const "hello") 123 >>= print
```
658(2): デフォルトの名無しさん [sage] 2021/01/20(水)18:38:17.88 ID:apYLuAz7(1/3)
>>655
ありがとうございます
そうなんです
今のところそれしか解決策ないんです
しかし希望では IO [ Int ] であって欲しいんです
イメージとしてはこうです
ある関数 f があって乱数で挙動が変わって欲しい
もちろん最終的にはIOモナドを使わないとしょうがない
しかし色々いじってる段階ではモナド被せないで代わりに擬似乱数無限配列 psuedRand :: [ Int ] みたいなのを食わせて
f a b c psuedRand
みたいに呼び出して色々頑張って、最後の最後にIOモナドで実地に
( return . f a b c ) =<< realRand
に切り替えるみたいな事ができないかなと思ったんです
f が使用する乱数がある程度わかるので別に無限列でなくてもいいっちゃいいんですけど
今一歩モナドに包まれてる関数いっぱい出てくるの好きじゃないんですよ
通のホムペとか見てるとむしろバンバンモナドでくるんどいた方がいいみたいなのもみるんですけどねぇ
668: デフォルトの名無しさん [sage] 2021/01/21(木)06:07:07.88 ID:LkrjH2wS(1)
>>667
そのレビューのURLを貼っていただけないでしょうか
690: デフォルトの名無しさん [sage] 2021/01/25(月)11:51:44.88 ID:crCxtFmd(1)
ライブラリは暗記ですが、数学は暗記ですか?っていう定番のあれだな
725: デフォルトの名無しさん [sage] 2021/02/10(水)11:17:11.88 ID:tXb64EJq(2/3)
静的型は最強とかガベコレは最強とかいう考えが
疑われるようになったのは半分ぐらいHaskellが原因だよね
960: デフォルトの名無しさん [] 2021/11/30(火)20:27:04.88 ID:SegqCGCa(2/2)
ちなみにモナドは日本語版wikipediaの記事を読んだのみです
型クラスはわかります
MaybeまではわかりましたがIOモナドで躓きました
ocamlとは違って参照型がない言語だってことは意外に思いました
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.048s