2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

関数型プログラミング言語Haskell Part33

1 :デフォルトの名無しさん:2020/02/10(月) 18:17:36 ID:L6eYQqyh.net
関数型プログラミング言語 Haskell について語るスレです。

Haskell Language(公式サイト)
https://www.haskell.org/
日本Haskellユーザーグループ - Haskell-jp
https://haskell.jp/

前スレ
関数型プログラミング言語Haskell Part32
https://mevius.5ch.net/test/read.cgi/tech/1548720347/

967 :デフォルトの名無しさん:2021/11/17(水) 06:46:33.09 ID:4zMdVbrs.net
より抽象度の高い方であるApplicativeのpureを生かすのは
私はごく自然に感じるけど

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

Semigroupの方から<>を消して、
Monoidのmappendを残すんじゃダメなの? って

968 :デフォルトの名無しさん:2021/11/17(水) 08:05:13.47 ID:fLzDfeGp.net
>>965
圏論は一切関係なく、いかに誤りの無いプログラムが書けるか、
またソースコードが読みやすくなるかという実用的な理由です。
そういう観点でもう一度読んでみてください。

Haskellは実用的な汎用プログラミング言語であることを目指して作られました。
なので、今回のような理由での提案は個人的にはすごく納得できるし、大賛成です。

969 :デフォルトの名無しさん:2021/11/17(水) 12:44:32.78 ID:f9gix7Cx.net
コメントありがとです。
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だけあるほうが自然だなと感じたわけです。

たぶんこれは圏論を知っていれば、変に思わないのかなと思って、そう言ったわけです。
推敲できてない感ありますが、伝わりますかね?

970 :デフォルトの名無しさん:2021/11/17(水) 12:50:22.84 ID:f9gix7Cx.net
ちなみに自分は、自分の価値観に反してるから却下すべきだと言ってるのではなくて、
どうしてこういう構造が正しいの?実際の理論やコードでの利用例に照らしてどんな利点や意味があるのと知りたいだけです。

971 :デフォルトの名無しさん:2021/11/17(水) 15:59:19.97 ID:oGkdvxh0.net
そもそも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がどうたらいうのを見た事あるんだけど誰か知りません?

972 :デフォルトの名無しさん:2021/11/17(水) 16:59:55.76 ID:fpCU2YNN.net
「アプリカティブ関手はモノイド圏における強laxモノイド関手だよ、何か問題でも?」
https://blog.miz-ar.info/2018/12/applicative-functor/

973 :デフォルトの名無しさん:2021/11/17(水) 17:27:50.45 ID:f9gix7Cx.net
>>971
多分これの概要部分は見てるんですよね。
https://en.m.wikipedia.org/wiki/Applicative_functor
後ろの方はさておき、概要部分は自分はさっぱりでしたが。

974 :デフォルトの名無しさん:2021/11/30(火) 20:23:52.94 ID:SegqCGCa.net
haskell勉強しようかなって思ってるんですけどおすすめ書籍ってなにかありませんか?
ちなみにocamlでプログラム書いたことあります
型システム入門を原文で7割ほど読破しました
ちなみに大学受験の数学はそこそこ自信あります
一階述語論理の記号扱って解いていました
圏論の知識はありません

975 :デフォルトの名無しさん:2021/11/30(火) 20:27:04.88 ID:SegqCGCa.net
ちなみにモナドは日本語版wikipediaの記事を読んだのみです
型クラスはわかります
MaybeまではわかりましたがIOモナドで躓きました
ocamlとは違って参照型がない言語だってことは意外に思いました

976 :デフォルトの名無しさん:2021/12/02(木) 00:19:03.82 ID:c82IwjxK.net
(>>=)がただのデータコンストラクタだったらモナドはただの構文木なのに

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

みたいな定義ができない型システムだから
代数的データ型を使わないでラムダをたくさん使うことになってみんな躓く

977 :デフォルトの名無しさん:2021/12/02(木) 13:13:42.19 ID:kpMV/tat.net
そりゃそうやろ?
データコンストラクタと展開されるべき関数の違いをプログラマが指定しなければ処理系は与えられたexpressionをどこまで展開すべきか決定できんやろ?

978 :デフォルトの名無しさん:2021/12/02(木) 14:49:59.14 ID:ISSe07L0.net
>>974
Haskellを始める前に仕入れたそのような知識やOCamlの経験が、
Haskellの学習にいったいどんな影響を与えるのか、
楽にするのか、それとも邪魔にしかならないのか、正直まったく分からん。
Haskellで何をしたいのか、目的や目標も分からんし。

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

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

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

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

なにで学習するにしても、手や頭を動かす(プログラミングする)のが主で、
本やドキュメントを読むのは従であることを忘れずに。

979 :デフォルトの名無しさん:2021/12/02(木) 17:56:37.45 ID:35Q5ApkZ.net
>>978
すみません
関数型言語って敷居が高そうなイメージあってやるにはある程度数学の素養が求められるのかなって思っていろいろ自分なりの知識があるところ挙げてみました
特に型システム入門は型推論の理論とか分かっていたほうがいいのかなと思って読んでいました
まずはLearn youの方を読んで見ようと思います
ありがとうございました

980 :デフォルトの名無しさん:2021/12/02(木) 20:33:40.95 ID:c82IwjxK.net
>>977
ただし、IOモナドは「展開」できない方がいい
そうすれば処理系がexpressionをどれだけ「展開」しても副作用がない

981 :デフォルトの名無しさん:2021/12/14(火) 12:11:46.65 ID:78Ep1iUH.net
あの伝説の岡部健が復活!!
https://twitter.com/ken74047924


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

https://twitter.com/KenSmooth5
https://i.imgur.com/Ws4RM1o.png
(deleted an unsolicited ad)

982 :デフォルトの名無しさん:2021/12/14(火) 12:13:53.75 ID:l8dEnSpn.net
毛の壁から国民を守る党 72議席目
https://lavender.5ch.net/test/read.cgi/net/1615613906/

983 :デフォルトの名無しさん:2021/12/14(火) 12:34:07.62 ID:iFoIKYew.net
IQ145の人?

984 :デフォルトの名無しさん:2021/12/14(火) 12:57:57.79 ID:IE9oyXDX.net
>>983
よく覚えてるな
最近はkensmoothってアカウントを連番で取得して、ネトウヨムーブを連発してたんだけど全部凍結されて今のアカウントになってる
あのネトウヨ投稿はなんだったんだろう

985 :デフォルトの名無しさん:2021/12/14(火) 17:15:27.20 ID:Ad592Fxk.net
>>981
うわあ

986 :デフォルトの名無しさん:2021/12/14(火) 17:39:35.08 ID:iFoIKYew.net
>>981
なにこの一覧

987 :デフォルトの名無しさん:2021/12/14(火) 18:35:50.33 ID:SgMFGeMD.net
岡部健、Twitter再開してたのねw
Newbieとはご無沙汰してたから知らんかったわw

988 :デフォルトの名無しさん:2021/12/14(火) 19:46:12.10 ID:oL+i1N1M.net
ツイッター再開おめでとうございます!
来年はべーやんの年になる!
と良いですね!

989 :デフォルトの名無しさん:2021/12/14(火) 22:17:24.22 ID:8Kmj5/YX.net
>>981
こはひどい

990 :デフォルトの名無しさん:2021/12/14(火) 22:19:44.63 ID:3V9aUzHV.net
岡部の最近凍結されたアカウントのツイートみっけた

https://archive.ph/7pepg

991 :デフォルトの名無しさん:2021/12/14(火) 22:22:42.89 ID:oL+i1N1M.net
べーやんは論客なんだな。

992 :デフォルトの名無しさん:2021/12/14(火) 22:38:20.35 ID:sz+GbZW0.net
UCLAを卒業したという話は封印したみたいね
なぜ?

993 :デフォルトの名無しさん:2021/12/14(火) 22:53:00.93 ID:oL+i1N1M.net
たまたまでは?

994 :デフォルトの名無しさん:2021/12/14(火) 23:06:41.51 ID:dwtzMOq3.net
Quoraでいろいろ回答しているがモナドの解説は見事だぞ

995 :デフォルトの名無しさん:2021/12/14(火) 23:16:06.08 ID:NLEjPnNU.net
こんな話で勢いづいてるんじゃないよ君ら

996 :デフォルトの名無しさん:2021/12/14(火) 23:42:04.31 ID:iFoIKYew.net
>>994
ハラデイ

997 :デフォルトの名無しさん:2021/12/15(水) 00:16:47.05 ID:Xb4w9/yA.net
「モナドについて学んでいるのですが、mapやflatMapは圏論ではどの概念にあたるのですか?」
具体的に例示していてわかりやすい。

998 :にしやま@大阪大学:2021/12/15(水) 07:25:32.70 ID:/l12wr0Z.net
嘘つきケンちゃん、相変わらずですねww
久々にわたくしも腹筋がミシミシと鍛えられました
しばらくわたくしも加勢いたします

999 :デフォルトの名無しさん:2021/12/15(水) 08:55:33.56 ID:fP8nqGj3.net
Hugs> take 10 fibs where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
[0,1,1,2,3,5,8,13,21,34]

GHCi
Prelude> take 10 fibs where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
<interactive>:6:14: error: parse error on input ‘where’
言語仕様が微妙に異なる?

オレメモ、バッチファイル
stack ghci
を目的のディレクトリ下(例、e:\haskell)に作ってディスクトップにはバッチファイルへのリンクを作っておくと
ghci起動後カーソルが消えない

貴重なHaskellスレがもう過ぐ1000行く

1000 :デフォルトの名無しさん:2021/12/15(水) 10:41:42.68 ID:BDga5vqT.net
>>981
ぎゃっはっはっはっは

1001 :デフォルトの名無しさん:2021/12/16(木) 08:29:00.48 ID:kVJbCKwy.net
令和の時代に毛の壁ふたたび

1002 :デフォルトの名無しさん:2021/12/16(木) 21:29:13.60 ID:k4b05O9+.net
自分でキャラ演出してるだろ

1003 :デフォルトの名無しさん:2021/12/16(木) 21:38:27.93 ID:Y2CVy/MB.net
https://togetter.com/li/773846
ちょまど氏が首突っ込んでるけど、社名背負ってよくこんな書き込み出来るもんだと、驚いた。

1004 :デフォルトの名無しさん:2021/12/16(木) 21:46:42.96 ID:OBc86cw8.net
他の人も叩いているから便乗して死体蹴りしようか的な精神が見て取れる

1005 :デフォルトの名無しさん:2021/12/16(木) 21:55:44.07 ID:iDMhxZSI.net
>>1003
毛の壁氏、ですか、なつかしいですね

1006 :デフォルトの名無しさん:2021/12/16(木) 21:55:47.51 ID:Y2CVy/MB.net
それはマイクロソフト社の公式見解ですか?って突っ込み入れて欲しいわ。

1007 :デフォルトの名無しさん:2021/12/16(木) 22:06:47.71 ID:Y2CVy/MB.net
教祖だの洗脳だの言いがかりも甚だしいし、「学術的な真理ではないし」云々という自身の書き込みがそのままブーメランだと思うけど。
これを社名背負ってやるんだから頭おかしいわ。

1008 :デフォルトの名無しさん:2021/12/16(木) 22:08:34.93 ID:OBc86cw8.net
誰か次スレ立てろよ

1009 :デフォルトの名無しさん:2021/12/16(木) 22:42:52.47 ID:k4b05O9+.net
結局モナドってなんなのかわからんということにすべて起因してる希ガス
話題になってからもう二十年くらい立つのに結論でないし、数学者でもない限り一生わからんのだろうな

1010 :デフォルトの名無しさん:2021/12/17(金) 13:01:29.30 ID:NPioGyUL.net
新スレを立てました。当スレ(Part33)が埋まってからの利用をお願いします。

関数型プログラミング言語Haskell Part34
https://mevius.5ch.net/test/read.cgi/tech/1639713446/

1011 :デフォルトの名無しさん:2021/12/18(土) 00:42:46.36 ID:om0zr0Am.net
>>1009
結論だせる個人は存在するけど
組織になるとなぜか、結論だせない奴が代表者を気取ってるだけじゃん

1012 :デフォルトの名無しさん:2021/12/18(土) 11:05:05.98 ID:1fj0JYV9.net
>>1011
結論出せる個人て岡部氏のことっしょ?
そういう勢いでどうこうじゃなくって皆を納得させるような結論はないっていうこと

1013 :デフォルトの名無しさん:2021/12/18(土) 11:23:52.39 ID:9ehaErM5.net
納得が遅い

1014 :デフォルトの名無しさん:2021/12/20(月) 09:52:36.40 ID:ZumN5JOf.net
https://qiita.com/mod_poppo/items/a6317294ba1e39b1c3b3

コメント欄に毛の壁現る。

1015 :デフォルトの名無しさん:2021/12/20(月) 09:52:54.51 ID:ZumN5JOf.net
また誹謗中傷してるので通報よろ

1016 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1016
342 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★