タグ

圏論に関するpetitvioletのブックマーク (18)

  • Home

    Scala で圏論入門 これは、Typesafe 社の Director Professional Services である Heiko Seeberger 氏による「Introduction to Category Theory in Scala」の翻訳文です。誤訳、誤記などがありましたら、 日Scalaユーザーズグループの「圏論入門 レビューのお願い」トピックに投稿していただくか、@quassia88 にご連絡ください。 もし君が僕みたいに、以前はJavaディベロッパーで、Scalaのファンになったばかりなら、君は多分遅かれ早かれ、モナドやら関手やらの、圏論の分野からやってきた謎に遭遇するだろう。そういった未知の概念は、君を、自分が恐ろしくまぬけなんじゃないか、という気分にさせることだと思う。もし君がそういう概念に既に親しんでいるなら、時間を無駄にすることはない、すぐにこのページを閉

    Home
  • 個別「20121211230653」の写真、画像 - Zellij's fotolife

    ユーザー登録ログインヘルプ next> <prev Trackback - http://f.hatena.ne.jp/Zellij/20121211230653 大人になってからの再学習 - 群・環・体 規約違反を通報する はてなフォトライフ / はじめての方へ / はてなブログ

  • 圏とHaskellの型

    4. 話すこと Haskellの型の仕組みと圏論の対応 Haskellの型システム 圏論の概念 型 対象 関数 射 tuple 直積 either 直和 Functor 関手 (ある種の関数) 自然変換 Haskellの型システムが圏論に支えられている実例を見ていきま す. Kinebuchi Tomohiko 圏とHaskellの型

    圏とHaskellの型
  • 随伴がモテないのはどう考えてもモナドが悪い!(モナドとコモナドの関係が分かる話) - Moon? Shadow! - Misc Memo

    この記事が対象としている読者 コモナドって何となく聞いたことがある人 圏論よく分かんないけど、圏の定義(対象と射と合成と恒等射と……)みたいなことは聞いたことがある人 要するに、モヤモヤしてても問題ないのですけれど、最低限の知識くらいはあった方がいいってことなのですー>ω< また、この記事は深淵なHaskellプログラマのみが書くことを許されると言われるモナドチュートリアルではないのでそういったものを期待されていたら、ごめんなさいなのです>< コモナド(´・ω・`) さて、みなさんはコモナドについてご存知です(・ω・? google:コモナド Haskellで調べると、 こもなど!コモナド!Comonad!! - capriccioso String Creating(Object something){ return My.Expression(something); } という id:

    随伴がモテないのはどう考えてもモナドが悪い!(モナドとコモナドの関係が分かる話) - Moon? Shadow! - Misc Memo
  • tnomuraのブログ

    日記

    tnomuraのブログ
  • 随伴関手のイメージ | tnomuraのブログ

    圏 C から圏 D への関手 F : C -> D と、その反対方向の D -> C の関手 G : D -> C があるとする。 F : C -> D G : D -> C 圏 C のオブジェクトのオブジェクトから A というオブジェクトを取り上げてみる。圏論ではオブジェクトの中身をみることはできないから、これをひとつの丸でイメージする。このオブジェクトの関手 F による像 F(A) はやはりオブジェクトだから、これもひとつの丸でイメージする。この写像関係をあらわすために、A -> F(a) のように A の丸から F(A) の丸へ一の矢印を引く。 A ---{ F }---> F(A) 次に圏 D の適当なオブジェクト B をとりあげる。これも中身は覗けないので丸でイメージする。先ほどの F(A) とこの B は同じ圏 D のオブジェクトなので、これらを繋ぐ射 f があるはずだ。圏を

    随伴関手のイメージ | tnomuraのブログ
  • 圏論 3分(?) クッキング

    圏論とは様々な構造を抽象的に扱い、内部の構造について言及しないことにより 「様々な構造」の共通した性質を見出すという楽しい分野です。 圏論を身につけることにより、貴方は様々な事柄について 面白い見方をすることができるようになるかもしれません。 そんな圏論の初歩的内容をスライドにしてみました。 東北ずん子ちゃんと一緒にご覧くださいっ。 この作品はマスコットアプリ文化祭2015に参加しています。 https://mascot-apps-contest.azurewebsites.net/ また、このスライドはwikipediaの下記ページを参考にしています。 https://ja.wikipedia.org/wiki/%E5%9C%8F%E8%AB%96 https://ja.wikipedia.org/wiki/%E9%96%A2%E6%89%8B

    圏論 3分(?) クッキング
  • MonoidもMonadもモノイドだって話 - Pixel Pedals of Tomakomai

    わかめのモナド浸しと第6回 スタートHaskell2で「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」という話をしてきた。スライドは以下。 モナモナ言うモナド入門 *1 モナモナ言うモナド入門.tar.gz .tar.gz の方はHaskellでの説明だったので、検証用コードも書いてみてgistに上げてる。QuickCheckとか使わずに値一個与えてみてるだけだけど、型が通ることくらいは確認できるかと。以下、検証用コードについて解説する。 MonoidはHaskの圏のモノイド まず、Monoidの方。図式はスライドを見てもらうとして、ソースは以下。満たすべきは各図式の時計回りと半時計回りが等しいことであり、具体的には、モノイドであれば clockwiseX == anticlockwiseX である必要があるという意味である。 assoc :: ((a, b), c)

    MonoidもMonadもモノイドだって話 - Pixel Pedals of Tomakomai
  • Yoneda lemmaとOperational Monad - Just $ A sandbox

    最近Haskellerの間で人気になりつつある(?)Operational Monadというものについての記事です。 サンプルプログラム Operational Monadは http://hackage.haskell.org/package/free-operational で定義されています。後でも説明しますがこれはFree Monadの構造をもったモナドになります。 以下のコードはhttps://gist.github.com/myuon/5737483に載せておきました。 {-# LANGUAGE GADTs #-} import Control.Monad import Control.Monad.Operational.Simple data Simple a where End :: Simple a Put :: String -> Simple () Get :: In

  • モナド、あるいは自己関手の圏におけるモノイド対象について - Nao Minami's Blog

    どうもこんばんは、south37です。 今日は久々にHaskellネタをぶっ込んで行きたいと思います。題材は、Haskellを知っていれば嫌でもその名を耳にするであろう「モナド」についてです。 そもそもモナドって何なんですか? はい、何なんでしょう?ここで、フィリップ・ワドラーの言葉を引用してみます。 モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも? うん、何だかよく分かりませんが超絶カッコいいですね!!こーゆうのサラッと言えたらいいですね!!! で、結局何なんですか? ワドラーの言葉は専門用語を使って簡潔にまとめられていた為、ベースとなる知識が無い状態では全く意味が分かりませんでした。まずは、ワドラーの言葉に出てきた単語の意味を一つ一つ見て行く事にしましょう。 自己関手 最初のキーワードは 自己関手 です。そのまま読むと、「自己」の「関手」です。はて? 関手(Funct

    モナド、あるいは自己関手の圏におけるモノイド対象について - Nao Minami's Blog
  • Haskellで学ぶ圏論・ウォームアップ編 - 目次 - bitterharvest’s diary

    1.合コン 2.邪推 3.あみだくじ 4.小学生に戻って足し算 5.最大公約数の構造 6.最小公倍数の構造 7.仲間を求めて 8.二項演算子とカリー化 9.モノイドと二項演算子 10.カリー化と指数対象 11.集合間の写像 12.集合内の写像(Endomap) 13.グラフ 14.基点付集合 15.集合の圏のまとめ 16.積のまとめ 17.和(余積)のまとめ 18.写像のまとめ

    Haskellで学ぶ圏論・ウォームアップ編 - 目次 - bitterharvest’s diary
  • モナド基礎勉強会vol2(#monadBase)で「米田の補題」の話をして来ました - Creatable a => a -> IO b

    はいはいどうも、花粉症で鼻水じゅびじゅばなちゅーんさんです、おこんばんわ。 色々あって現在求職中なのもあり、自分の書きたいコードをゴリゴリ書いたり、理論的な事をがつがつ勉強したりする良い時間を作れていて、だいぶ下請けPG時代に貯まった疲れも取れてきたのかなぁとか思ったりしてます。 これを期に手をつけはじめた事が色々あるので、そのうちいくつかでも自分の中でケジメを付けるまで、もうちょっとのんびりしたいなぁと思い、寄生している実家の母親の顔色と、銀行口座残高とにらめっこしつつ、やりたいようにやってる感じです。 さて、そんな機会を使って、名古屋で開催された「モナド基礎勉強会vol2」へ足を運んで登壇させて頂きましたので、今日はそのレポートというか、雑記みたいなエントリです。 どんな勉強会だったのか こんなんです xbase.connpass.com 「基」ではなく「基礎」ですから、午前の部でが

    モナド基礎勉強会vol2(#monadBase)で「米田の補題」の話をして来ました - Creatable a => a -> IO b
  • Haskellで学ぶ圏論・入門編 写像を対象に - bitterharvest’s diary

    1.圏の定義 一般的に、圏は次のように定義されている。圏は5つの要素と二つの条件により構成される。5つの要素は次のようになっている。 (1) 対象 圏は対象を有する。対象は、通常は大文字を用いて、\(A,B,C,..\)と表す(対象は多くの場合何かの集まりである。例えば、集合などが対象になる。しかし、集合の要素はこの場合対象とはいわない)。 (2) 射 圏は対象(複数の場合も可)から対象(こちらも複数の場合可)へ移す射を有する。射は、通常小文字を用いて、\(f,g,h,..\)と表す(これまで習ってきた関数は射となるが、射となるのは関数だけではない。これから説明するモノイドの場合はこれまでの関数とは異なる)。 (3) ドメインとコドメイン 射の出発(入力)側の対象をドメインといい、到着(出力)側の対象をコドメインという。 (4) 恒等射 射は恒等射\(id\)を有する。恒等射は自分から自分

    Haskellで学ぶ圏論・入門編 写像を対象に - bitterharvest’s diary
  • Haskellの多相関数と自然変換(というか射の族)について - claustrophobia

    (Kan拡張のとこ以外)読み終えた。随伴がモナドを伴う、というのは知ってたけど具体的にHaskellコードに落とせるというのは面白い。 / Haskellと随伴 by @myuon_myon on @Qiita http://t.co/AiN2UsRJVX— xenophobia (@xenophobia__) 2014, 12月 5 そんなことより、多相関数を与えることとHask -> Haskな関手間の自然変換を与えることとがほぼ対応する、という事実に気付かされたので意義深かった。 > アドベントカレンダー4日目記事— xenophobia (@xenophobia__) 2014, 12月 5 これなんですが、以前も聞いた気がするし*1、忘れないように備忘録をば。 たとえば、HaskellでInt -> Double型の関数を1つ与えるというのは、Hask圏において対象Intから対象

  • プログラマのための圏論攻略法 | tnomuraのブログ

    圏論に寄り道したら面白くなってきて、cabal-install の解読がお留守になってしまったが、ひとつは解読が cabal-install 内に収まらなくなって、GetOpt なども調べないといけなくなってきそうだったので二の足を踏んでいる状態になったからだ。圏論の方も米田のレンマくらいまでは理解しないと意味がなさそうなのでしばらくこちらの方を進めたい。 数学者でないプログラマが圏論を学習したいと思う理由の第一はIOモナドを理解したいという欲求だろう。操作的には理解できても、やはり、IOモナドとは何かということをしっかりと理解したいという不満は残る。 しかし、圏論の参考書を読み始めてから、それだけではないような気がしてきた。圏論では全てを射で表現する。Haskell のような関数型のプログラム言語もやはり全てを関数で表現するので、なにか考え方の質の共通点のようなものがあるのではないかと

    プログラマのための圏論攻略法 | tnomuraのブログ
  • 「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」 - Qiita

    $\mathcal{C}$を圏とする. 組$(T,\eta,\mu)$が$\mathcal{C}$上の モナド とは, 関手$T:\mathcal{C} \to \mathcal{C}$および自然変換$\eta: 1 \to T$, $\mu: T^2 \to T$が以下を満たすこととする. $\mu \circ \mu T = \mu \circ T \mu$ $\mu \circ \eta T = 1 = \mu \circ T \eta$ 以下の図式を考えると良い. http://ja.wikipedia.org/wiki/モナド_(圏論)#.E5.AE.9A.E7.BE.A9 あるいは, 以下のstring diagramを考えても良い. monad pic.twitter.com/dOOZviGmOM — みょん (@myuon_myon) 2014, 12月 26 モナドとは関

    「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」 - Qiita
  • 圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ

    はじめに 関数型といえばモナド、モナドといえば難しいという事が巷で言われていますが、いきなりモナドを理解しようとするから難しく思えるだけで、圏論から順序を追って理解していけば全然難しく無いんだよって事を分かって貰えればいいなぁと思い書いて見ることにしました。 ただ、圏論といっても適用範囲がとっても広く、応用編になると分けわかんなくなってくるので、ここではプログラミング分野に特化したFP(functional programing)圏論*1について書きます。 また、説明を簡単にする為に細かい部分をいろいろ省略しています。学術的な定義としては正確ではないので、このエントリの説明は大体合ってる位の気持ちで読んでくださいね。 尚、ぼくは圏論の詳しい事はさっぱり分からないので、学問的な話を振られても回答できませんキリッ 圏ってなんなの? 圏論と言えば、圏です。 圏って何なのかというと、対象(obje

    圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ
  • 圏論勉強会 @ ワークスアプリケーションズ

    Seminar of category theory

  • 1