タグ

category-theoryに関するnsyeeのブックマーク (70)

  • CPL (圏論プログラミング言語) - Wikipedia

    CPL (正式名称:Categorical Programming Language) は圏論に基づいたデータ型の定義と計算モデルを持つ関数型プログラミング言語であり、1987年、萩野達也によって発案された。圏論の計算機科学に対する応用の黎明期に生まれた言語である。 元々定義されているデータ型が存在せず、何らかの関手の始双代数あるいは終双代数としてデータ型を定義する。プログラムあるいは関数[要曖昧さ回避]は射として、ポイントフリーの形式で記述する。関数の表し方としては射として表すものと冪対象として表すものの二通りがある。元々定義されている関数は恒等関数のみであり、元々定義されている制御構造は関数合成のみである。条件分岐や帰納法などはデータ型の定義に付随して定義される。

  • Category Theory for Promises/A+ - BAM Weblog

    Promises are being debated in the JavaScript community. The most popular specification is Promises/A+. It’s a fairly small specification, containing only a single function: then. The function is heavily overloaded which makes it quite complicated - way more than it has to be. I’ll try to show how category theory can give us a much simpler, more generalised and lawful API! A proper Promise/A+ imple

  • Product category - Wikipedia

  • 東大 理学部情報科学科/大学院情報理工学系研究科|情報科学科NAVIgation

    きわめて抽象度が高く、それゆえに近寄りがたい印象がもたれている圏論。その圏論のもわーっとしている入口へ案内します。とはいえ、圏論のきちんとした定義をわずかな文章で示してもわかりにくいばかりなので、ここではまず小さな例で雰囲気をつかんでください。興味がわいたら、最後に紹介する文献をどうぞ。 矢印ばっかり描いているのだ 数学では普通、「集合 A があって、その元 a ∈ A があって……」というように、集合ベースで話が進みます。圏論というのは、代わりに対象と射を使う数学のコトバです。ぱっと見でいえば、「矢印ばかり描いている」という印象になるでしょう。 次の図を見てください。 X、Y、Z、X ⊔ Y というのが対象で、その間に描いてある矢印が射です。 圏論ではこの図を、 X、Y が与えられたとき、 特別な X ⊔ Y と、κ1、κ2 がとれる。 どう特別かというと、ほかに Z とf、g というも

  • IIJ Research Laboratory

    ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで

  • Ekmett勉強会at渋谷 #ekmett_conf - capriccioso String Creating(Object something){ return My.Expression(something); }

    数多くのHaskellライブラリのを手がけるEdward Kmettさんのライブラリを勉強しよう! という趣向で開催されたekmett勉強会に参加して来ました。 当はその日の内容を一つ一つご紹介できれば良いのですが、うっかりメモのファイルを削除するというドジっ子っぷりをキめてしまったので、曖昧な記憶を元に「こんなんだったお><。」という話を書こうかなと思います。 lens ブログ主担当。発表資料は以下。 http://www.slideshare.net/itsoutoftunethismymusic/ekmett-17955009 https://github.com/ekmett/lens/wiki/Derivation を大いに参考にしました。 発表後パフォーマンスについての質問があったのですがお勉強不足でお答えできず。 ekmett氏曰く、「黒魔術使ってるから、いまやbaseライ

    Ekmett勉強会at渋谷 #ekmett_conf - capriccioso String Creating(Object something){ return My.Expression(something); }
  • こもなど!コモナド!Comonad!! - capriccioso String Creating(Object something){ return My.Expression(something); }

    どうも。 清く正しいHaskell戦士ちゅーんさんです。 今日はアレです。 Comonad やってきます。 えー・・・ 「こ」 「コ」 「Co」 Coってなんすか。カレーハウスっすか。丸い響きの音を付けて可愛く見せれば良いと思ってるんですか。 いやいや、騙されませんよ、後ろのmonadから察するにどう考えても圏論用語です。当に(ry という感じで、名前からして怪しげな臭いをプンプンと漂わせているComonadを見てみたいと思います。 とりあえず、お約束なので、Hackageに行ってComonadクラスの定義を見てきましょう。 http://hackage.haskell.org/packages/archive/comonad/0.1.1/doc/html/Control-Comonad.html class Functor w => Comonad w where extract ::

    こもなど!コモナド!Comonad!! - capriccioso String Creating(Object something){ return My.Expression(something); }
  • Algebraic Topology: A guide to literature

    Your language? Dec, 2018 Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Algebraic Topology: A guide to literature この サイト の 目 的 使 用 上 の 注 意 目 次 基 文 献 の 探 し 方 使 い 方 ホモロジ ー と コホモロジ ー ホモトピ ー 群 と ホモトピ ー 集 合 各 種 空 間 と 空 間 に 対 する 操 作 様 々 な 写 像 トポロジ ー の 歴 史 重 要 な 道 具 や 概 念 圏 と 関 手 スペクトル 系 列 代 数 的 な 道 具 コホモロジ ー 作 用 素 の 理論 K 理論 コボルデ ィ ズム と 関

  • Catamorphism - Wikipedia

    圏論において、Catamorphism(ギリシャ語: κατά = 下方へ または ~に従って; μορφή = 形式 または 形)は、始代数から他の代数への唯一の準同型射を意味する。この概念は関数型プログラミングへfoldとして応用されている。 Anamorphismはこの双対となる概念である。Hylomorphismも参照。 関数型プログラミングにおける Catamorphism[編集] Catamorphismは関数型プログラミングにおいてリストの fold と呼ばれる操作を、始代数として表現できる任意の代数的データ型に一般化したものである。 プログラミングにおいて Catamorphism の概念を導入した最初の出版物の一つは、“Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire”, by E

  • Contribution: ConCaT

    Constructive Category Theory Authors Amokrane Saïbi Description Keywords category theory Available files ConCaT.CATEGORY_THEORY.FUNCTOR.FSC_inc.html ConCaT.CATEGORY_THEORY.CATEGORY.CONSTRUCTIONS.CCC.html ConCaT.CATEGORY_THEORY.NT.YONEDA_LEMMA.YonedaLemma.html ConCaT.CATEGORY_THEORY.LIMITS.Equalizers1.html ConCaT.CATEGORY_THEORY.ADJUNCTION.CCC.FunProd.html ConCaT.CATEGORY_THEORY.LIMITS.Iso_Limit.ht

  • Agda による圏論入門

    Menu Menu Agda で証明しながら圏論を学ぶという予定です。あまり入門ではないかも。 Higher-Order Categorical Logic の 0章に相等する内容です。 BitBucket category-exercise-in-agda source code Agda の入門の要約 Agda の入門 Agda の集合の Level Agda の record Agda のReasoning Caategory module と圏の入門 自然変換 IdentityFunctor と Hom Reasoning Monad の結合則 Sets と Monoid を使った Monad の例 Kleisli 圏の構成 ここまでが Monad を理解するための部分。以下は、Adjoint 関連です。 Adjoint から Monad を導く Kleisli 圏による Mona

  • category-extras

    category-extras: A meta-package documenting various packages inspired by category theory The obsolete category-extras package provided a monolithic set of modules designed for the use of category theory in Haskell. It was exploded into more focused, self-contained packages (listed in the dependencies below); this meta-package documents where the code has gone. In addition to the core definitions,

    category-extras
  • 圏論で考えよう、というスクリーンキャストを作りました - 南よ! 海の見える方!

    作成中のアプリ、WhiteBoard Castのドッグフードとして、「圏論で考えよう」というのを作ってみました。 単射と全射を中心に圏論と集合論の違いを説明する、という話をします。可換を使って射を中心に考える、という事を説明する事が目標です。 序盤はアプリのバグにより音が飛んだりずれたり、後半は音飛びが酷かったりしますね(^^; 扇風機がこっち向くと音が小さくなる… 再生リスト: https://www.youtube.com/playlist?list=PL3J_mLcl4YCc-CsND9NwaHpKu3Ir-hsni 第一回: はじめに このシリーズの目的と前提です。 練習問題を中心にやっていくので、ちゃんと練習問題やって欲しいなぁ、という話。 https://www.youtube.com/watch?v=YzSAo-EvhfA&list=PL3J_mLcl4YCc-CsND9Nw

    圏論で考えよう、というスクリーンキャストを作りました - 南よ! 海の見える方!
  • ScalazのEndo - xuwei-k's blog

    @markhibberd さんの Endo の話がわかりやすかったので、勝手に日語の説明をつけたスライドを作りました もとのスライド http://mth.io/talks/patterns-in-types-ylj 日語の説明つけたもの http://gist-slide.appspot.com/5607773/endo.md https://gist.github.com/5607773 あと、他にもスライド公開してたので、みんな読むといいよ Argonaut Purely-Functional Library Design in Scala Zippers, Comonads and Data Structures in Scala それと、scalaj-httpのRequestに関してこのパターン使えるなぁーと思ったので、作ってみた https://gist.github.co

    ScalazのEndo - xuwei-k's blog
  • Scalaz の Functor.scala を初心者が読んでみた - Elliptium

    Scalaz Advent Calendar の 6 日目の記事として書いています. 準備 今回解説するソースコードは scalaz/Functor.scala です. scalaz-seven ブランチのものであることに注意してください. 前置き 数学 (代数) は一応やってはいたものの, ScalaScalaz のことを全然分からない状態からこの記事を書いています. そんな人間が Scalaz を読んだらどう見えるか? という実験記録のようなものがこの記事です. 圏論については「圏論の基礎」を参照しています. 用語などはそちらに倣いました. 数学の函手とは 最初にざっと圏論の概念の定義を並べておきます. 圏 (category) の定義 圏とは対象 (object) と対象の間の射 (arrow) の集まり 射 f はある対象 a とある対象 b を結び付けるもの この射は方向を

  • 自由マグマを自由対象の定義の図で書くと - Pixel Pedals of Tomakomai

    圏論勉強会 第3回の自由対象で悲鳴が上がってたようなので、参考までに図に書いて説明しておく。 まず、マグマと自由マグマを以下のように定義する(というか、勉強会においてこう定義していた)。 class Magma a where magappend :: a -> a -> a data FreeMagma a = Leaf a | Node (FreeMagma a) (FreeMagma a) deriving Show instance Magma (FreeMagma a) where x `magappend` y = Node x y このFreeMagmaが自由対象という性質を持つ事は、以下の図で捉えられる。 図の上半分はマグマと準同型がなす圏なので、登場するFreeMagma aとbはMagmaクラスのインスタンスであることが求められる。忘却関手というのは、上半分の圏からその

    自由マグマを自由対象の定義の図で書くと - Pixel Pedals of Tomakomai
  • 今日は 圏論勉強会 第3回 の日です - Pixel Pedals of Tomakomai

    圏論勉強会ではない方の圏論勉強会 第3回に来ました。資料とustreamは公開されています。 今回からヘッドセット完備 中高生も見ているらしい(のでプログラミング以外のネタも) 第3回: 様々な圏 / 講師 @9_ties さん 視野が狭くならないよう、プログラムに関わらず色々な圏を見る 定義の復習: 圏〜自然変換まで。(自然変換はまだ雰囲気だけでOK) 主役級の圏を紹介 Sets*1 対象が(小さい)集合、射が関数、関数合成 とんでもなく巨大な圏 整数論とか実数論とかと規模が違う。色々問題が起こる 宇宙(universe) : 基礎論の分野なのでそこまで詳しく知らなくてもOK Setsの対象すべてからなる集合Uを考えると、U∈U?? 対角線論法使ってごにょごにょすると、カントールのパラドクスにつながる。 数学で必要な集合を全て含む"領域" U。もはや集合と呼べないもの。色んな宇宙がある

    今日は 圏論勉強会 第3回 の日です - Pixel Pedals of Tomakomai
  • 今日は 圏論勉強会 第5回 の日です - Pixel Pedals of Tomakomai

    圏論勉強会ではない方の圏論勉強会 第5回です。資料とustreamは公開されています。 今日は倚子が追加された ワークスアプリケーションズ社さんに感謝しましよう 第5回: 様々な射 / 講師 @9_ties さん Hom集合についての補足 A言語とB言語のトランスレーターtと問題のA言語での解法fがあるとする B言語での解法はt.f (共変) B言語でのインタプリタをinterpとすると、A言語のインタプリタはinterp.t (反変) オブジェクト思考でも同様の考え方ができる インスンタンスを作るのは共変 フィールドから値を取り出すのは反変 計算機では射は実装する可能性があるもの → 自動で射を移せるのはありがたい 同型射 g.f = 1, f.g = 1, 同型射がある対象同士は同型 gは逆射 → 一意なのでf^-1と書く 証明 → gとhがfの逆射であれば、g = g.id = g.

    今日は 圏論勉強会 第5回 の日です - Pixel Pedals of Tomakomai
  • 今日は 圏論勉強会 第6回 の日です - Pixel Pedals of Tomakomai

    圏論勉強会ではない方の圏論勉強会 第6回です。資料とustreamは公開されています。 第6回: 積・余積・極限 / 講師 @9_ties さん 普遍性の概念によって定義される極限と余極限について 終対象 任意の対象から射がひとつだけ存在 同型を除いて一意 1と1'があれば、!1 . !1' : 1 → 1、id : 1 → 1なので、唯一性から!1 . !1' = id Well-defined性 定義が複数通りある場合に、矛盾が起きないこと 終対象も複数あるが、どれをとっても議論に影響しない 始対象 → 双対圏における終対象 よって、同型を除いて一意 双対性原理 → 任意の圏における正しい文は、双対圏においても正しい 圏の公理がドメイン、コドメインについて対称なことによる Setsの始対象 → 空集合(1つだけ)、終対象 → 単集合(複数個ある) Setsの圏は非対称性がある Monの

    今日は 圏論勉強会 第6回 の日です - Pixel Pedals of Tomakomai
  • 自由モノイドとFreeモナド - Pixel Pedals of Tomakomai

    以前、モナドは自己関手圏におけるモノイドであるという話をしたことがあるのだけど、この時は理解が足りなくてFreeモナドにまで踏み込めなかった。今日調べていたら、Free Monoid Objectsというわかりやすいエントリを見つけたので簡単に紹介。 まず、以前のスライドの中ではモノイド対象をモノイダル圏の中で特定の条件を満たす対象と射の組(M, μ、η)と定義をしたけど、紹介したエントリでは関手として定義している。もうちょっと具体的に言えば、1、M、M□M、M□M□M、・・・というモノイド対象のみからなるシンプルなモノイダル圏(これをTh(Mon)と呼ぶ)を考えて、そこからの関手Fがモノイド対象を定義するという見方。この見方がありがたい点は2つ挙げられる。 (モノイダル)自然変換がモノイド準同型になってくれる*1 モノイド F,F':C^Th(Mon)→C とモノイド準同型 τ:F→F'

    自由モノイドとFreeモナド - Pixel Pedals of Tomakomai