[過去ログ]
関数型プログラミング言語Haskell Part33 (1002レス)
関数型プログラミング言語Haskell Part33 http://mevius.5ch.net/test/read.cgi/tech/1581326256/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
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
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.043s