どうもこんばんは、south37です。 今日は久々にHaskellネタをぶっ込んで行きたいと思います。題材は、Haskellを知っていれば嫌でもその名を耳にするであろう「モナド」についてです。 そもそもモナドって何なんですか? はい、何なんでしょう?ここで、フィリップ・ワドラーの言葉を引用してみます。 モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも? うん、何だかよく分かりませんが超絶カッコいいですね!!こーゆうのサラッと言えたらいいですね!!! で、結局何なんですか? ワドラーの言葉は専門用語を使って簡潔にまとめられていた為、ベースとなる知識が無い状態では全く意味が分かりませんでした。まずは、ワドラーの言葉に出てきた単語の意味を一つ一つ見て行く事にしましょう。 自己関手 最初のキーワードは 自己関手 です。そのまま読むと、「自己」の「関手」です。はて? 関手(Funct
■ [Haskell] The Typeclassopediaを訳しました The Monad.ReaderのIssue 13に掲載されたThe Typeclassopediaという記事が、Functor, Monad, Monoid, Applicative, Foldable, Traversable, Arrowといったような型クラスについて良くまとまっていて、そのあたりを知りたい時の取っ掛かりになりそうだったので翻訳してみました。 作者のBrent Yorgeyさんからも許可がいただけたので公開します。翻訳に慣れていないので変な日本語(特に専門用語の日本語訳はかなり怪しい)があったり、そもそも間違っていたりするかもしれませんので、何か見つけたらコメントを頂けると助かります。 ■ [Haskell] The Typeclassopedia by Brent Yorgey <first
この記事は以下のページに移転しました. blog.ryota-ka.me operational (あるいは freer) と呼ばれているものの説明として, a) Coyoneda を使うと,kind が * -> * であるような任意の型から functor を作り出せる 任意の型 f :: * -> * について Coyoneda f は Functor のインスタンスになる b) Free を使うと,任意の functor から monad を作り出せる Functor のインスタンスである任意の型 f について Free f は Monad のインスタンスになる a と b を組み合わせると,適当な型 f :: * -> * から monad を作り出せて便利〜🙌 というストーリーが往々にして語られる*1. Free については既に多くの解説が存在するので,詳しい解説は他の記事を
こんにちは,エムスリーエンジニアリングGの榎田(@niflh)です.趣味は数学とテレビゲームです. 以前の記事 で Scala を通して関数型を勉強した話をしましたが,最近社内で Scala with Catsを読む勉強会をしています.この本は,Cats という「Scala で関数型プログラミングをサポートするライブラリ」を勉強しつつ,関数型特有の概念に慣れ親しむことを目的としたものです. この勉強会も,参加者の皆さんと二人三脚で進み,モナドを扱う章に入りました.そんな中,参加者の一人から,次のような意見が出ました. モナドをやるとよく圏論が出てくるので,かじってみると面白い一方,よくわからないことも多い.プログラミング上のどの操作が圏論とかのどの操作に紐付いてて,何が嬉しいのか,あたりがまとまってると嬉しい. 尤もだと思ったので,色々調べて考えた結果が本稿です.一記事には長すぎるようにも
: 2020 4 3 1 3 2 16 3 29 4 51 5 73 6 - 89 7 96 8 108 1 2 § 1. 1.1. (graph) V E Ď V ˆ V pV, Eq v P V (vertex) e “ pv0, v1q P E (edge) pv0, v1q P E v0 v1 v0 v0 (directed graph) pv0, v1q P E v0 v1 e “ pv0, v1q v0 dompeq codpeq dompeq “ v0 ‚ e // ‚ v1 “ codpeq x ď y y x x y (Hasse diagram) x ď y x ÝÑ y d �� e �� f �� a OO @@ � � � � � � � � DD b ^^======== @@ � � � � � � � � DD c OO ^^======== DD V 2
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く