[過去ログ]
関数型プログラミング言語Haskell Part33 (1002レス)
関数型プログラミング言語Haskell Part33 http://mevius.5ch.net/test/read.cgi/tech/1581326256/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
947: デフォルトの名無しさん [sage] 2021/11/15(月) 21:51:56.85 ID:NLyY6NK4 >>944 Applicativeにpureがあるのはなんで? Monadのreturnだけにするのは変ですか? 零元がApplicativeの責務なのがピンときてないんです。Monadだと何と合わないんでしょう http://mevius.5ch.net/test/read.cgi/tech/1581326256/947
948: デフォルトの名無しさん [sage] 2021/11/16(火) 02:22:00.49 ID:EE8p/B0u >>947 できるだけ一次情報に当たりましょう。 >>942 のリンク先の Planned: remove return from Monad の項目の Proposal のリンク先を読んで下さい。 (更にその先の dudcusdion なども) それが最も正確で、かつ、分かりやすいです。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/948
949: デフォルトの名無しさん [sage] 2021/11/16(火) 21:38:06.78 ID:au51kzu/ 正確に綴ってくれ http://mevius.5ch.net/test/read.cgi/tech/1581326256/949
950: デフォルトの名無しさん [sage] 2021/11/16(火) 22:40:31.75 ID:t6DDIn3B 読んでみたけどよくわかんないなあ。AMPを満たすためにApplicative m => Monad mが必要ってことは書いてあるようだけど Monadからreturnを削除して、pureに統一する理由って書いてあるかな? 読み飛ばしたかもしれんけど。 return = pureだから、統一しても同じっていうのは分かるんだけど、Applicativeにpureが必要な理由がわからない。 Applicativeの4つのルールを満たすためにpureが必要なことは、Applicativeの定義に書いてあるけど、圏論わかんないから、このルールが何で必要なのか分からん。 Monoidal Functor?とかいうやつの表現のために単位元(零元じゃなかったね)が必要なんだろうけど、圏論わからんないから分からん。 Monoidと関係あるんだろうか。それなら加法のために単位元が必要なのはわかるんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/950
951: デフォルトの名無しさん [sage] 2021/11/16(火) 22:42:08.60 ID:t6DDIn3B 誰か噛み砕いて教えて下さい http://mevius.5ch.net/test/read.cgi/tech/1581326256/951
952: デフォルトの名無しさん [sage] 2021/11/17(水) 06:46:33.09 ID:4zMdVbrs より抽象度の高い方であるApplicativeのpureを生かすのは 私はごく自然に感じるけど mappendと<>も機能的にダブってるから 将来Monoidからmappendが消えるよって Monoidのドキュメントに書いてあるけど もしかしてそれも疑問だったりする? Semigroupの方から<>を消して、 Monoidのmappendを残すんじゃダメなの? って http://mevius.5ch.net/test/read.cgi/tech/1581326256/952
953: デフォルトの名無しさん [sage] 2021/11/17(水) 08:05:13.47 ID:fLzDfeGp >>950 圏論は一切関係なく、いかに誤りの無いプログラムが書けるか、 またソースコードが読みやすくなるかという実用的な理由です。 そういう観点でもう一度読んでみてください。 Haskellは実用的な汎用プログラミング言語であることを目指して作られました。 なので、今回のような理由での提案は個人的にはすごく納得できるし、大賛成です。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/953
954: デフォルトの名無しさん [sage] 2021/11/17(水) 12:44:32.78 ID:f9gix7Cx コメントありがとです。 Semigroupは半群、Monoidは単位元付きの半群ですよね。 言われてみると、<>に統一してmappendは消しても自然な気がする。 すごいHでログ文字列がmappendで追加されていく、サンプルを読んだことがあるので、Monoidは受け入れやすいんです。 Semigroupに単位元がないことは不思議に思わないです。半群というものを聞いたことがあったのと、 ログの例に戻ると、文字列なしのログはありえないと考えれば、単位元がないMonoidがあってもあまり不思議に思わないです。 言ってることが上と変わってきてるかもしれないですが、Applicativeが不思議に思うのは、ここに単位元?(というか単位元を生成する)pureがあること。 Applicativeの結合<*>って持ち上げられた型だけで構成されてます: f (a -> b) -> f a -> f b。 圏論何も知らないで言いますが、単位元pureは持ち上げられた型f aが自然な気がするんです。a -> f aではなく。 雰囲気でそう感じてるだけですが。 そんでもって、a -> f aが登場するのって、Monad.(>>=)だよなあってことで、だったら、returnがMonadにあるのは自然なんじゃないかな、と思うわけです。 そうすると、pureってなんのためにあるんだろう。同じ型ならMonadだけあるほうが自然だなと感じたわけです。 たぶんこれは圏論を知っていれば、変に思わないのかなと思って、そう言ったわけです。 推敲できてない感ありますが、伝わりますかね? http://mevius.5ch.net/test/read.cgi/tech/1581326256/954
955: デフォルトの名無しさん [sage] 2021/11/17(水) 12:50:22.84 ID:f9gix7Cx ちなみに自分は、自分の価値観に反してるから却下すべきだと言ってるのではなくて、 どうしてこういう構造が正しいの?実際の理論やコードでの利用例に照らしてどんな利点や意味があるのと知りたいだけです。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/955
956: デフォルトの名無しさん [sage] 2021/11/17(水) 15:59:19.97 ID:oGkdvxh0 そもそもapplicativeなるものが数学の圏論的に何意味するかよくわからんのだよな monadの方はwikiのmonad (category theory)の項があってキッチリ解説されてるし https://en.m.wikipedia.org/wiki/Monad_(category_theory) Tがcategory C上のmonadであるときfmap Tをμ。η_Tで定めればコレがfunctor C→Cを定義するのもわかるんだけど、applicativeについておんなじような解説が中々見当たらない どっかでDescartes closed categoryがどうたらいうのを見た事あるんだけど誰か知りません? http://mevius.5ch.net/test/read.cgi/tech/1581326256/956
957: デフォルトの名無しさん [sage] 2021/11/17(水) 16:59:55.76 ID:fpCU2YNN 「アプリカティブ関手はモノイド圏における強laxモノイド関手だよ、何か問題でも?」 https://blog.miz-ar.info/2018/12/applicative-functor/ http://mevius.5ch.net/test/read.cgi/tech/1581326256/957
958: デフォルトの名無しさん [sage] 2021/11/17(水) 17:27:50.45 ID:f9gix7Cx >>956 多分これの概要部分は見てるんですよね。 https://en.m.wikipedia.org/wiki/Applicative_functor 後ろの方はさておき、概要部分は自分はさっぱりでしたが。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/958
959: デフォルトの名無しさん [] 2021/11/30(火) 20:23:52.94 ID:SegqCGCa haskell勉強しようかなって思ってるんですけどおすすめ書籍ってなにかありませんか? ちなみにocamlでプログラム書いたことあります 型システム入門を原文で7割ほど読破しました ちなみに大学受験の数学はそこそこ自信あります 一階述語論理の記号扱って解いていました 圏論の知識はありません http://mevius.5ch.net/test/read.cgi/tech/1581326256/959
960: デフォルトの名無しさん [] 2021/11/30(火) 20:27:04.88 ID:SegqCGCa ちなみにモナドは日本語版wikipediaの記事を読んだのみです 型クラスはわかります MaybeまではわかりましたがIOモナドで躓きました ocamlとは違って参照型がない言語だってことは意外に思いました http://mevius.5ch.net/test/read.cgi/tech/1581326256/960
961: デフォルトの名無しさん [sage] 2021/12/02(木) 00:19:03.82 ID:c82IwjxK (>>=)がただのデータコンストラクタだったらモナドはただの構文木なのに data M b = Bind (M a) (a -> M b) | ... みたいな定義ができない型システムだから 代数的データ型を使わないでラムダをたくさん使うことになってみんな躓く http://mevius.5ch.net/test/read.cgi/tech/1581326256/961
962: デフォルトの名無しさん [sage] 2021/12/02(木) 13:13:42.19 ID:kpMV/tat そりゃそうやろ? データコンストラクタと展開されるべき関数の違いをプログラマが指定しなければ処理系は与えられたexpressionをどこまで展開すべきか決定できんやろ? http://mevius.5ch.net/test/read.cgi/tech/1581326256/962
963: デフォルトの名無しさん [sage] 2021/12/02(木) 14:49:59.14 ID:ISSe07L0 >>959 Haskellを始める前に仕入れたそのような知識やOCamlの経験が、 Haskellの学習にいったいどんな影響を与えるのか、 楽にするのか、それとも邪魔にしかならないのか、正直まったく分からん。 Haskellで何をしたいのか、目的や目標も分からんし。 なので、Haskell入門者という観点だけで次の2点をすすめる。 さっと要点を学んで早くアプリを作り始めたいのなら、薄い入門書で十分。 「Learn You a Haskell for Great Good!」 が良いと思う。 ガッツリ学びたい、かつ、時間と根気があるのなら、 「Haskell Programming from first principles」 がおすすめ。 詳しくはどちらも公式サイトを参照して。 なにで学習するにしても、手や頭を動かす(プログラミングする)のが主で、 本やドキュメントを読むのは従であることを忘れずに。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/963
964: デフォルトの名無しさん [] 2021/12/02(木) 17:56:37.45 ID:35Q5ApkZ >>963 すみません 関数型言語って敷居が高そうなイメージあってやるにはある程度数学の素養が求められるのかなって思っていろいろ自分なりの知識があるところ挙げてみました 特に型システム入門は型推論の理論とか分かっていたほうがいいのかなと思って読んでいました まずはLearn youの方を読んで見ようと思います ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1581326256/964
965: デフォルトの名無しさん [sage] 2021/12/02(木) 20:33:40.95 ID:c82IwjxK >>962 ただし、IOモナドは「展開」できない方がいい そうすれば処理系がexpressionをどれだけ「展開」しても副作用がない http://mevius.5ch.net/test/read.cgi/tech/1581326256/965
966: デフォルトの名無しさん [sage] 2021/12/14(火) 12:11:46.65 ID:78Ep1iUH あの伝説の岡部健が復活!! https://twitter.com/ken74047924 (おまけ情報) Quoraでも有名だった岡部健、2021年12月にTwitterのアカウントまたまた永久凍結される。 当時のアーカイブは多少ネットに残ってるらしい https://twitter.com/KenSmooth5 https://i.imgur.com/Ws4RM1o.png https://twitter.com/5chan_nel (5ch newer account) http://mevius.5ch.net/test/read.cgi/tech/1581326256/966
967: デフォルトの名無しさん [sage] 2021/12/14(火) 12:13:53.75 ID:l8dEnSpn 毛の壁から国民を守る党 72議席目 https://lavender.5ch.net/test/read.cgi/net/1615613906/ http://mevius.5ch.net/test/read.cgi/tech/1581326256/967
968: デフォルトの名無しさん [] 2021/12/14(火) 12:34:07.62 ID:iFoIKYew IQ145の人? http://mevius.5ch.net/test/read.cgi/tech/1581326256/968
969: デフォルトの名無しさん [sage] 2021/12/14(火) 12:57:57.79 ID:IE9oyXDX >>968 よく覚えてるな 最近はkensmoothってアカウントを連番で取得して、ネトウヨムーブを連発してたんだけど全部凍結されて今のアカウントになってる あのネトウヨ投稿はなんだったんだろう http://mevius.5ch.net/test/read.cgi/tech/1581326256/969
970: デフォルトの名無しさん [sage] 2021/12/14(火) 17:15:27.20 ID:Ad592Fxk >>966 うわあ http://mevius.5ch.net/test/read.cgi/tech/1581326256/970
971: デフォルトの名無しさん [] 2021/12/14(火) 17:39:35.08 ID:iFoIKYew >>966 なにこの一覧 http://mevius.5ch.net/test/read.cgi/tech/1581326256/971
972: デフォルトの名無しさん [sage] 2021/12/14(火) 18:35:50.33 ID:SgMFGeMD 岡部健、Twitter再開してたのねw Newbieとはご無沙汰してたから知らんかったわw http://mevius.5ch.net/test/read.cgi/tech/1581326256/972
973: デフォルトの名無しさん [] 2021/12/14(火) 19:46:12.10 ID:oL+i1N1M ツイッター再開おめでとうございます! 来年はべーやんの年になる! と良いですね! http://mevius.5ch.net/test/read.cgi/tech/1581326256/973
974: デフォルトの名無しさん [sage] 2021/12/14(火) 22:17:24.22 ID:8Kmj5/YX >>966 こはひどい http://mevius.5ch.net/test/read.cgi/tech/1581326256/974
975: デフォルトの名無しさん [sage] 2021/12/14(火) 22:19:44.63 ID:3V9aUzHV 岡部の最近凍結されたアカウントのツイートみっけた https://archive.ph/7pepg http://mevius.5ch.net/test/read.cgi/tech/1581326256/975
976: デフォルトの名無しさん [] 2021/12/14(火) 22:22:42.89 ID:oL+i1N1M べーやんは論客なんだな。 http://mevius.5ch.net/test/read.cgi/tech/1581326256/976
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 26 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s