[過去ログ] 関数型プログラミング言語Haskell Part33 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
950
(1): 2021/11/16(火)22:40 ID:t6DDIn3B(1/2) AAS
読んでみたけどよくわかんないなあ。AMPを満たすためにApplicative m => Monad mが必要ってことは書いてあるようだけど
Monadからreturnを削除して、pureに統一する理由って書いてあるかな?
読み飛ばしたかもしれんけど。

return = pureだから、統一しても同じっていうのは分かるんだけど、Applicativeにpureが必要な理由がわからない。
Applicativeの4つのルールを満たすためにpureが必要なことは、Applicativeの定義に書いてあるけど、圏論わかんないから、このルールが何で必要なのか分からん。

Monoidal Functor?とかいうやつの表現のために単位元(零元じゃなかったね)が必要なんだろうけど、圏論わからんないから分からん。

Monoidと関係あるんだろうか。それなら加法のために単位元が必要なのはわかるんだけど。
951: 2021/11/16(火)22:42 ID:t6DDIn3B(2/2) AAS
誰か噛み砕いて教えて下さい
952: 2021/11/17(水)06:46 ID:4zMdVbrs(1) AAS
より抽象度の高い方であるApplicativeのpureを生かすのは
私はごく自然に感じるけど

mappendと<>も機能的にダブってるから
将来Monoidからmappendが消えるよって
Monoidのドキュメントに書いてあるけど
もしかしてそれも疑問だったりする?

Semigroupの方から<>を消して、
Monoidのmappendを残すんじゃダメなの? って
953: 2021/11/17(水)08:05 ID:fLzDfeGp(1) AAS
>>950
圏論は一切関係なく、いかに誤りの無いプログラムが書けるか、
またソースコードが読みやすくなるかという実用的な理由です。
そういう観点でもう一度読んでみてください。

Haskellは実用的な汎用プログラミング言語であることを目指して作られました。
なので、今回のような理由での提案は個人的にはすごく納得できるし、大賛成です。
954: 2021/11/17(水)12:44 ID:f9gix7Cx(1/3) AAS
コメントありがとです。
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だけあるほうが自然だなと感じたわけです。

たぶんこれは圏論を知っていれば、変に思わないのかなと思って、そう言ったわけです。
推敲できてない感ありますが、伝わりますかね?
955: 2021/11/17(水)12:50 ID:f9gix7Cx(2/3) AAS
ちなみに自分は、自分の価値観に反してるから却下すべきだと言ってるのではなくて、
どうしてこういう構造が正しいの?実際の理論やコードでの利用例に照らしてどんな利点や意味があるのと知りたいだけです。
956
(1): 2021/11/17(水)15:59 ID:oGkdvxh0(1) AAS
そもそもapplicativeなるものが数学の圏論的に何意味するかよくわからんのだよな
monadの方はwikiのmonad (category theory)の項があってキッチリ解説されてるし

外部リンク:en.m.wikipedia.org

Tがcategory C上のmonadであるときfmap Tをμ。η_Tで定めればコレがfunctor C→Cを定義するのもわかるんだけど、applicativeについておんなじような解説が中々見当たらない
どっかでDescartes closed categoryがどうたらいうのを見た事あるんだけど誰か知りません?
957: 2021/11/17(水)16:59 ID:fpCU2YNN(1) AAS
「アプリカティブ関手はモノイド圏における強laxモノイド関手だよ、何か問題でも?」
外部リンク:blog.miz-ar.info
958: 2021/11/17(水)17:27 ID:f9gix7Cx(3/3) AAS
>>956
多分これの概要部分は見てるんですよね。
外部リンク:en.m.wikipedia.org
後ろの方はさておき、概要部分は自分はさっぱりでしたが。
959
(1): 2021/11/30(火)20:23 ID:SegqCGCa(1/2) AAS
haskell勉強しようかなって思ってるんですけどおすすめ書籍ってなにかありませんか?
ちなみにocamlでプログラム書いたことあります
型システム入門を原文で7割ほど読破しました
ちなみに大学受験の数学はそこそこ自信あります
一階述語論理の記号扱って解いていました
圏論の知識はありません
960: 2021/11/30(火)20:27 ID:SegqCGCa(2/2) AAS
ちなみにモナドは日本語版wikipediaの記事を読んだのみです
型クラスはわかります
MaybeまではわかりましたがIOモナドで躓きました
ocamlとは違って参照型がない言語だってことは意外に思いました
961: 2021/12/02(木)00:19 ID:c82IwjxK(1/2) AAS
(>>=)がただのデータコンストラクタだったらモナドはただの構文木なのに

data M b = Bind (M a) (a -> M b) | ...

みたいな定義ができない型システムだから
代数的データ型を使わないでラムダをたくさん使うことになってみんな躓く
962
(1): 2021/12/02(木)13:13 ID:kpMV/tat(1) AAS
そりゃそうやろ?
データコンストラクタと展開されるべき関数の違いをプログラマが指定しなければ処理系は与えられたexpressionをどこまで展開すべきか決定できんやろ?
963
(1): 2021/12/02(木)14:49 ID:ISSe07L0(1) AAS
>>959
Haskellを始める前に仕入れたそのような知識やOCamlの経験が、
Haskellの学習にいったいどんな影響を与えるのか、
楽にするのか、それとも邪魔にしかならないのか、正直まったく分からん。
Haskellで何をしたいのか、目的や目標も分からんし。

なので、Haskell入門者という観点だけで次の2点をすすめる。

さっと要点を学んで早くアプリを作り始めたいのなら、薄い入門書で十分。
「Learn You a Haskell for Great Good!」
が良いと思う。

ガッツリ学びたい、かつ、時間と根気があるのなら、
「Haskell Programming from first principles」
がおすすめ。

詳しくはどちらも公式サイトを参照して。

なにで学習するにしても、手や頭を動かす(プログラミングする)のが主で、
本やドキュメントを読むのは従であることを忘れずに。
964: 2021/12/02(木)17:56 ID:35Q5ApkZ(1) AAS
>>963
すみません
関数型言語って敷居が高そうなイメージあってやるにはある程度数学の素養が求められるのかなって思っていろいろ自分なりの知識があるところ挙げてみました
特に型システム入門は型推論の理論とか分かっていたほうがいいのかなと思って読んでいました
まずはLearn youの方を読んで見ようと思います
ありがとうございました
965: 2021/12/02(木)20:33 ID:c82IwjxK(2/2) AAS
>>962
ただし、IOモナドは「展開」できない方がいい
そうすれば処理系がexpressionをどれだけ「展開」しても副作用がない
966
(4): 2021/12/14(火)12:11 ID:78Ep1iUH(1) AAS
あの伝説の岡部健が復活!!
Twitterリンク:ken74047924

(おまけ情報)
Quoraでも有名だった岡部健、2021年12月にTwitterのアカウントまたまた永久凍結される。
当時のアーカイブは多少ネットに残ってるらしい

Twitterリンク:KenSmooth5
画像リンク

Twitterリンク:5chan_nel (5ch newer account)
967: 2021/12/14(火)12:13 ID:l8dEnSpn(1) AAS
毛の壁から国民を守る党 72議席目
2chスレ:net
968
(1): 2021/12/14(火)12:34 ID:iFoIKYew(1/3) AAS
IQ145の人?
969: 2021/12/14(火)12:57 ID:IE9oyXDX(1) AAS
>>968
よく覚えてるな
最近はkensmoothってアカウントを連番で取得して、ネトウヨムーブを連発してたんだけど全部凍結されて今のアカウントになってる
あのネトウヨ投稿はなんだったんだろう
970: 2021/12/14(火)17:15 ID:Ad592Fxk(1) AAS
>>966
うわあ
971: 2021/12/14(火)17:39 ID:iFoIKYew(2/3) AAS
>>966
なにこの一覧
972: 2021/12/14(火)18:35 ID:SgMFGeMD(1) AAS
岡部健、Twitter再開してたのねw
Newbieとはご無沙汰してたから知らんかったわw
973: 2021/12/14(火)19:46 ID:oL+i1N1M(1/3) AAS
ツイッター再開おめでとうございます!
来年はべーやんの年になる!
と良いですね!
974: 2021/12/14(火)22:17 ID:8Kmj5/YX(1) AAS
>>966
こはひどい
975: 2021/12/14(火)22:19 ID:3V9aUzHV(1) AAS
岡部の最近凍結されたアカウントのツイートみっけた

外部リンク:archive.ph
976: 2021/12/14(火)22:22 ID:oL+i1N1M(2/3) AAS
べーやんは論客なんだな。
977: 2021/12/14(火)22:38 ID:sz+GbZW0(1) AAS
UCLAを卒業したという話は封印したみたいね
なぜ?
978: 2021/12/14(火)22:53 ID:oL+i1N1M(3/3) AAS
たまたまでは?
979
(1): 2021/12/14(火)23:06 ID:dwtzMOq3(1) AAS
Quoraでいろいろ回答しているがモナドの解説は見事だぞ
1-
あと 23 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.014s