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/
960 名前:デフォルトの名無しさん [2021/10/22(金) 23:18:21.74 ID:5ielnrPe.net] haskellってpythonに影響与えてるんやな どおりで雰囲気似てる感じするんか
961 名前:デフォルトの名無しさん [2021/10/23(土) 01:09:52.51 ID:o3xA5lbA.net] レイアウトと呼ばれるインデントスタイルは、Pythonが1991年に最初にリリースであり、85年以前にあった Mirandaを参考に1990年にHaskellは登場したはず。
962 名前:デフォルトの名無しさん [2021/10/29(金) 12:55:32.45 ID:SqmTIce6.net] 不動点演算子がわからなくて泣ける 再帰呼び出しになってないのに再帰になってるのはわかるんだけど
963 名前:デフォルトの名無しさん mailto:sage [2021/10/29(金) 18:35:44.90 ID:ZN5Hp6rJ.net] >>951 何が分からないのか分からない
964 名前:デフォルトの名無しさん [2021/10/29(金) 18:40:46.51 ID:uCUCIWXe.net] >>952 なんでわかるんや? 才能か? 後不動点定理がわからん 勉強しろって言われてるけど
965 名前:デフォルトの名無しさん mailto:sage [2021/10/29(金) 20:05:05.45 ID:1mMf/Evz.net] 遅延評価の才能がないと x = f x を思いつかないんだよな y f = f (y f) しか分からない
966 名前:デフォルトの名無しさん mailto:sage [2021/10/29(金) 21:04:54.17 ID:ZN5Hp6rJ.net] >>951 の何もかもが、こちらには分からない。 愚痴を言いたいだけなのか、それとも何か質問をしたいのか。 後者なら、質問内容は何か。 >>953 > 後不動点定理がわからん それだけなら、勉強してくださいとしか言いようがない。 勉強しろと言われているのなら、何か資料が配られたり、 参考文献が挙げられたりしていないのか? そういうのが既にあるのなら、取りあえず全てに当たって、 今分かる部分と分からない部分を徹底的に細かく仕訳してみればいいのでは?
967 名前:デフォルトの名無しさん mailto:sage [2021/11/05(金) 06:38:08.04 ID:UB8UVAT8.net] >>951 分からないのは何故再帰処理してるのかじゃなくて(そこは定義的に明らかだし)、 どうして無限ループせずに終了するのかでいいのかな
968 名前:デフォルトの名無しさん mailto:sage [2021/11/14(日) 05:07:45.42 ID:HK5ctRa0.net] やっと Monad クラスから return が消えるよ まだ計画段階たけど https://github.com/fumieval/Haskell-breaking-changes
969 名前:デフォルトの名無しさん mailto:sage [2021/11/14(日) 21:26:09.61 ID:bsdXePE0.net] なんで消すの?
970 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 02:14:35.96 ID:jBQU3T8q.net] >>958 Applicativeクラスにpure関数があるから。 Monad則やApplicative則を満たしてるなら、 まず間違いなく pure = return だから片方で充分。 それにreturnって名前があまりに実態とかけ離れてるしね。
971 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 12:46:13.83 ID:KyLp+2Ep.net] 初歩的な質問ですが、複数の設定ファイル読み込みするのに readFile で全体取得してから処理するのと withFile で hGetLine しながら処理するのではどちらがいいとかありますか? 主に処理速度の点について聞きたいです。
972 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 18:22:40.27 ID:W9vQbDtp.net] >>960 そういうのは、自分で実験すればすぐに確かめられるのでは?
973 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 21:51:56.85 ID:NLyY6NK4.net] >>959 Applicativeにpureがあるのはなんで? Monadのreturnだけにするのは変ですか? 零元がApplicativeの責務なのがピンときてないんです。Monadだと何と合わないんでしょう
974 名前:デフォルトの名無しさん mailto:sage [2021/11/16(火) 02:22:00.49 ID:EE8p/B0u.net] >>962 できるだけ一次情報に当たりましょう。 >>957 のリンク先の Planned: remove return from Monad の項目の Proposal のリンク先を読んで下さい。 (更にその先の dudcusdion なども) それが最も正確で、かつ、分かりやすいです。
975 名前:デフォルトの名無しさん mailto:sage [2021/11/16(火) 21:38:06.78 ID:au51kzu/.net] 正確に綴ってくれ
976 名前:デフォルトの名無しさん mailto:sage [2021/11/16(火) 22:40:31.75 ID:t6DDIn3B.net] 読んでみたけどよくわかんないなあ。AMPを満たすためにApplicative m => Monad mが必要ってことは書いてあるようだけど Monadからreturnを削除して、pureに統一する理由って書いてあるかな? 読み飛ばしたかもしれんけど。 return = pureだから、統一しても同じっていうのは分かるんだけど、Applicativeにpureが必要な理由がわからない。 Applicativeの4つのルールを満たすためにpureが必要なことは、Applicativeの定義に書いてあるけど、圏論わかんないから、このルールが何で必要なのか分からん。 Monoidal Functor?とかいうやつの表現のために単位元(零元じゃなかったね)が必要なんだろうけど、圏論わからんないから分からん。 Monoidと関係あるんだろうか。それなら加法のために単位元が必要なのはわかるんだけど。
977 名前:デフォルトの名無しさん mailto:sage [2021/11/16(火) 22:42:08.60 ID:t6DDIn3B.net] 誰か噛み砕いて教えて下さい
978 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 06:46:33.09 ID:4zMdVbrs.net] より抽象度の高い方であるApplicativeのpureを生かすのは 私はごく自然に感じるけど mappendと<>も機能的にダブってるから 将来Monoidからmappendが消えるよって Monoidのドキュメントに書いてあるけど もしかしてそれも疑問だったりする? Semigroupの方から<>を消して、 Monoidのmappendを残すんじゃダメなの? って
979 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 08:05:13.47 ID:fLzDfeGp.net] >>965 圏論は一切関係なく、いかに誤りの無いプログラムが書けるか、 またソースコードが読みやすくなるかという実用的な理由です。 そういう観点でもう一度読んでみてください。 Haskellは実用的な汎用プログラミング言語であることを目指して作られました。 なので、今回のような理由での提案は個人的にはすごく納得できるし、大賛成です。
980 名前:デフォルトの名無しさん mailto:sage [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だけあるほうが自然だなと感じたわけです。 たぶんこれは圏論を知っていれば、変に思わないのかなと思って、そう言ったわけです。 推敲できてない感ありますが、伝わりますかね?
981 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 12:50:22.84 ID:f9gix7Cx.net] ちなみに自分は、自分の価値観に反してるから却下すべきだと言ってるのではなくて、 どうしてこういう構造が正しいの?実際の理論やコードでの利用例に照らしてどんな利点や意味があるのと知りたいだけです。
982 名前:デフォルトの名無しさん mailto:sage [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がどうたらいうのを見た事あるんだけど誰か知りません?
983 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 16:59:55.76 ID:fpCU2YNN.net] 「アプリカティブ関手はモノイド圏における強laxモノイド関手だよ、何か問題でも?」 https://blog.miz-ar.info/2018/12/applicative-functor/
984 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 17:27:50.45 ID:f9gix7Cx.net] >>971 多分これの概要部分は見てるんですよね。 https://en.m.wikipedia.org/wiki/Applicative_functor 後ろの方はさておき、概要部分は自分はさっぱりでしたが。
985 名前:デフォルトの名無しさん [2021/11/30(火) 20:23:52.94 ID:SegqCGCa.net] haskell勉強しようかなって思ってるんですけどおすすめ書籍ってなにかありませんか? ちなみにocamlでプログラム書いたことあります 型システム入門を原文で7割ほど読破しました ちなみに大学受験の数学はそこそこ自信あります 一階述語論理の記号扱って解いていました 圏論の知識はありません
986 名前:デフォルトの名無しさん [2021/11/30(火) 20:27:04.88 ID:SegqCGCa.net] ちなみにモナドは日本語版wikipediaの記事を読んだのみです 型クラスはわかります MaybeまではわかりましたがIOモナドで躓きました ocamlとは違って参照型がない言語だってことは意外に思いました
987 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 00:19:03.82 ID:c82IwjxK.net] (>>=)がただのデータコンストラクタだったらモナドはただの構文木なのに data M b = Bind (M a) (a -> M b) | ... みたいな定義ができない型システムだから 代数的データ型を使わないでラムダをたくさん使うことになってみんな躓く
988 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 13:13:42.19 ID:kpMV/tat.net] そりゃそうやろ? データコンストラクタと展開されるべき関数の違いをプログラマが指定しなければ処理系は与えられたexpressionをどこまで展開すべきか決定できんやろ?
989 名前:デフォルトの名無しさん mailto:sage [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」 がおすすめ。 詳しくはどちらも公式サイトを参照して。 なにで学習するにしても、手や頭を動かす(プログラミングする)のが主で、 本やドキュメントを読むのは従であることを忘れずに。
990 名前:デフォルトの名無しさん [2021/12/02(木) 17:56:37.45 ID:35Q5ApkZ.net] >>978 すみません 関数型言語って敷居が高そうなイメージあってやるにはある程度数学の素養が求められるのかなって思っていろいろ自分なりの知識があるところ挙げてみました 特に型システム入門は型推論の理論とか分かっていたほうがいいのかなと思って読んでいました まずはLearn youの方を読んで見ようと思います ありがとうございました
991 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 20:33:40.95 ID:c82IwjxK.net] >>977 ただし、IOモナドは「展開」できない方がいい そうすれば処理系がexpressionをどれだけ「展開」しても副作用がない
992 名前:デフォルトの名無しさん mailto:sage [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)
993 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 12:13:53.75 ID:l8dEnSpn.net] 毛の壁から国民を守る党 72議席目 https://lavender.5ch.net/test/read.cgi/net/1615613906/
994 名前:デフォルトの名無しさん [2021/12/14(火) 12:34:07.62 ID:iFoIKYew.net] IQ145の人?
995 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 12:57:57.79 ID:IE9oyXDX.net] >>983 よく覚えてるな 最近はkensmoothってアカウントを連番で取得して、ネトウヨムーブを連発してたんだけど全部凍結されて今のアカウントになってる あのネトウヨ投稿はなんだったんだろう
996 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 17:15:27.20 ID:Ad592Fxk.net] >>981 うわあ
997 名前:デフォルトの名無しさん [2021/12/14(火) 17:39:35.08 ID:iFoIKYew.net] >>981 なにこの一覧
998 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 18:35:50.33 ID:SgMFGeMD.net] 岡部健、Twitter再開してたのねw Newbieとはご無沙汰してたから知らんかったわw
999 名前:デフォルトの名無しさん [2021/12/14(火) 19:46:12.10 ID:oL+i1N1M.net] ツイッター再開おめでとうございます! 来年はべーやんの年になる! と良いですね!
1000 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 22:17:24.22 ID:8Kmj5/YX.net] >>981 こはひどい
1001 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 22:19:44.63 ID:3V9aUzHV.net] 岡部の最近凍結されたアカウントのツイートみっけた https://archive.ph/7pepg
1002 名前:デフォルトの名無しさん [2021/12/14(火) 22:22:42.89 ID:oL+i1N1M.net] べーやんは論客なんだな。
1003 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 22:38:20.35 ID:sz+GbZW0.net] UCLAを卒業したという話は封印したみたいね なぜ?
1004 名前:デフォルトの名無しさん [2021/12/14(火) 22:53:00.93 ID:oL+i1N1M.net] たまたまでは?
1005 名前:デフォルトの名無しさん [2021/12/14(火) 23:06:41.51 ID:dwtzMOq3.net] Quoraでいろいろ回答しているがモナドの解説は見事だぞ
1006 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 23:16:06.08 ID:NLEjPnNU.net] こんな話で勢いづいてるんじゃないよ君ら
1007 名前:デフォルトの名無しさん [2021/12/14(火) 23:42:04.31 ID:iFoIKYew.net] >>994 ハラデイ
1008 名前:デフォルトの名無しさん [2021/12/15(水) 00:16:47.05 ID:Xb4w9/yA.net] 「モナドについて学んでいるのですが、mapやflatMapは圏論ではどの概念にあたるのですか?」 具体的に例示していてわかりやすい。
1009 名前:にしやま@大阪大学 mailto:sage [2021/12/15(水) 07:25:32.70 ID:/l12wr0Z.net] 嘘つきケンちゃん、相変わらずですねww 久々にわたくしも腹筋がミシミシと鍛えられました しばらくわたくしも加勢いたします
1010 名前:デフォルトの名無しさん [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行く
1011 名前:デフォルトの名無しさん [2021/12/15(水) 10:41:42.68 ID:BDga5vqT.net] >>981 ぎゃっはっはっはっは
1012 名前:デフォルトの名無しさん [2021/12/16(木) 08:29:00.48 ID:kVJbCKwy.net] 令和の時代に毛の壁ふたたび
1013 名前:デフォルトの名無しさん [2021/12/16(木) 21:29:13.60 ID:k4b05O9+.net] 自分でキャラ演出してるだろ
1014 名前:デフォルトの名無しさん [2021/12/16(木) 21:38:27.93 ID:Y2CVy/MB.net] https://togetter.com/li/773846 ちょまど氏が首突っ込んでるけど、社名背負ってよくこんな書き込み出来るもんだと、驚いた。
1015 名前:デフォルトの名無しさん [2021/12/16(木) 21:46:42.96 ID:OBc86cw8.net] 他の人も叩いているから便乗して死体蹴りしようか的な精神が見て取れる
1016 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 21:55:44.07 ID:iDMhxZSI.net] >>1003 毛の壁氏、ですか、なつかしいですね
1017 名前:デフォルトの名無しさん [2021/12/16(木) 21:55:47.51 ID:Y2CVy/MB.net] それはマイクロソフト社の公式見解ですか?って突っ込み入れて欲しいわ。
1018 名前:デフォルトの名無しさん [2021/12/16(木) 22:06:47.71 ID:Y2CVy/MB.net] 教祖だの洗脳だの言いがかりも甚だしいし、「学術的な真理ではないし」云々という自身の書き込みがそのままブーメランだと思うけど。 これを社名背負ってやるんだから頭おかしいわ。
1019 名前:デフォルトの名無しさん [2021/12/16(木) 22:08:34.93 ID:OBc86cw8.net] 誰か次スレ立てろよ
1020 名前:デフォルトの名無しさん [2021/12/16(木) 22:42:52.47 ID:k4b05O9+.net] 結局モナドってなんなのかわからんということにすべて起因してる希ガス 話題になってからもう二十年くらい立つのに結論でないし、数学者でもない限り一生わからんのだろうな
1021 名前:デフォルトの名無しさん [2021/12/17(金) 13:01:29.30 ID:NPioGyUL.net] 新スレを立てました。当スレ(Part33)が埋まってからの利用をお願いします。 関数型プログラミング言語Haskell Part34 https://mevius.5ch.net/test/read.cgi/tech/1639713446/
1022 名前:デフォルトの名無しさん [2021/12/18(土) 00:42:46.36 ID:om0zr0Am.net] >>1009 結論だせる個人は存在するけど 組織になるとなぜか、結論だせない奴が代表者を気取ってるだけじゃん
1023 名前:デフォルトの名無しさん [2021/12/18(土) 11:05:05.98 ID:1fj0JYV9.net] >>1011 結論出せる個人て岡部氏のことっしょ? そういう勢いでどうこうじゃなくって皆を納得させるような結論はないっていうこと
1024 名前:デフォルトの名無しさん [2021/12/18(土) 11:23:52.39 ID:9ehaErM5.net] 納得が遅い
1025 名前:デフォルトの名無しさん [2021/12/20(月) 09:52:36.40 ID:ZumN5JOf.net] https://qiita.com/mod_poppo/items/a6317294ba1e39b1c3b3 コメント欄に毛の壁現る。
1026 名前:デフォルトの名無しさん [2021/12/20(月) 09:52:54.51 ID:ZumN5JOf.net] また誹謗中傷してるので通報よろ
1027 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 678日 15時間 35分 18秒
1028 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています