タグ

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

  • Comonads are objects

    Haskell programmers popularized the use of monads to structure imperative computations, complete with syntactic sugar in the form of do notation. However, category theorists predict that there is also a completely symmetric concept called a "comonad", which tickles our fancy. After all, if monads are so intriguing, then perhaps comonads are equally intriguing, and who doesn't like twice the intrig

    Windymelt
    Windymelt 2024/02/15
    コモナドの良い記事として他ページからreferされてがちなページ
  • 圏論勉強会 @ ワークスアプリケーションズ

    Seminar of category theory

    Windymelt
    Windymelt 2024/01/16
    “2013年 圏論勉強会 資料”
  • 13 自由モノイド|プログラマのための圏論 (執筆中)

    13 自由モノイド|プログラマのための圏論 (執筆中)
    Windymelt
    Windymelt 2024/01/15
    "この種の、元のありうる組み合わせを作り続け(法則を守るための)最小限の同一視をする構成は、自由構成とよばれる"
  • Haskellのzip関数を一般化すると何になるか

    この記事は Haskell Advent Calendar 2023 の7日目の記事です。 zip関数について Haskellには zip 関数というものがあります。この関数は、2つのリストを受け取って、それぞれから取り出した要素を組にしたリストを返します。

    Haskellのzip関数を一般化すると何になるか
    Windymelt
    Windymelt 2023/12/07
    おもしろい。zipを(だいたい)抽象化したものがApplicative(Apply)になるのか
  • 実例によるPureScript

    Windymelt
    Windymelt 2023/06/22
    “Applicative関手は関数を持ち上げることを可能にする関手だと考えるとすると、pureは引数のない関数の持ち上げだというように考えることができます。”
  • https://www.jstage.jst.go.jp/article/jcss/28/1/28_2020.075/_pdf/-char/ja

    Windymelt
    Windymelt 2023/06/01
    "ベクトルをベクトルに変えるのは何かといったら、行列ですよね" "線形代数というのは、多次元の量を多次元の量に変換することを考える" "「線形性」という性質を満たすものを「線形写像」と言っています"
  • 自由モノイド - bitterharvest’s diary

    4.自由モノイド 圏論では、普遍性という概念はとても大切である。普遍性は、その言葉が示すように、数学の多くの分野で共通する性質を示したものである。前の記事で説明した極限と余極限も広い分野での共通の性質であるため、圏論での重要な普遍性の一つとなっている。ここでは、普遍性のさらなる例として自由モノイドを説明する。 4.1 自由モノイドの定義 加算や乗算などの二項演算子を用いて計算されるものはモノイドと呼ばれる。モノイドについても普遍性を考えることができる。それは自由モノイドと呼ばれるものだ。これを説明するために、モノイドについて、まずは、集合論での定理から始めてみよう。 1)集合論での定義 集合論でのモノイドは、ある集合\(M\)に対して、 1) 二項演算子\(\mu\)が存在し、\(\mu : M \times M \rightarrow M\)である。 2) 単位律が成り立つ。即ち、単位元

    Windymelt
    Windymelt 2023/05/31
    “これに対して、出現した生成元の順番が異なるにもかかわらず、それらを同一なものと見直すモノイドもある。例えば、加算や乗算では、... このようなモノイドは自由モノイドとは言わない。”
  • 写像対象-指数対象 - bitterharvest’s diary

    7.6 指数対象 写像対象には別の表現法がある。また、こちらの方がよく知られてもいる。それは指数対象と呼ばれる。 対象\(A\)から対象\(B\)への射の集まり\(A \Rightarrow B\)を写像対象と呼んだ。同じように射の集まりなのだが、ドメイン\(A\)を肩に、コドメイン\(B\)をその下に、即ち、\(B^A\)と記述したものを、指数対象という。写像対象と指数対象は記述の仕方が異なるだけで、意味するところは同じである。しかし、指数対象の形で記述すると、何となく馴染みやすい。これは、指数という概念を中学生の時に学ぶので、熟知しているためだ。都合のよいことに、指数対象は指数と概念を共有している。その例を示そう。 ドメイン\(A\)を変えたときに、その指数対象には射がいくつ存在するかを考えてみよう。\(B^A\)は\(A\)から\(B\)への射の集まり(集合)を表している。\(A\)

    写像対象-指数対象 - bitterharvest’s diary
  • アプリカティブ関手ってなに?モノイド圏との関係は?調べてみました! | 雑記帳

    この記事は Category Theory Advent Calendar 2018 7日目 かつ Haskell (その2) Advent Calendar 2018 7日目の記事です。 Category Theory Advent Calendar 2018の6日目はcorollary2525さんの「随伴は あらゆるところに 現れる」、8日目は空席、9日目はt_uemura669101さんの「トポスと高階論理」です。 Haskell (その2) Advent Calendar 2018の6日目は空席、8日目はtakoeight0821さんの「Type defaultingについての初級的な解説」です。 この記事はどういう記事か 圏論の方から来た人向け: デカルト積やテンソル積の一般化である「モノイド積」の話と、「内部ホム」の話をします。文献によっては内部ホムはモノイド積の右随伴として導

  • 矢印のパターンで理解する Functor〜Applicative〜Monad - Qiita

    F[A]→F[B] に至る矢印を比べて、いろいろな型クラスをまとめて理解する、Cats 入門者向け記事。 はじめに この記事では、Cats の型クラスをテーマにする。 Cats は関数型な Scala プログラミング1のためのライブラリなので、この記事でも関数を扱う。関数型パラダイムで関数2というと数学の関数とだいたい同じだから、定義域の集合から値域の集合へのマッピングのことになる。ただし、数学では写像や射などと言うが、記号でも矢印(→)だし、図の上でも矢印なので、この記事では矢印ということにする。 また扱う型クラスとしては、Functor、Applicative、Monad の周辺をメインとする。前半ではそれらの Scala トレイトが要求する実装必須メソッドのうち、F[A]→F[B] に向かう矢印に還元できるもの3に着目して整理し、さらに後半では、それらの周辺に見られるもう一つのパター

    矢印のパターンで理解する Functor〜Applicative〜Monad - Qiita
    Windymelt
    Windymelt 2023/03/05
    矢印がたくさんあって良い記事
  • Arrowまわりの射の合成いろいろ - Qiita

    Milewski 氏の圏論講座の第1章 Category: The Essence of Compositionを読んでたら、冒頭あたりに次のような一文があった。 But the essence of a category is composition. Or, if you prefer, the essence of composition is a category. 射の合成こそが圏の質で、またその逆も成り立つという。 Cats だと cats.arrowパッケージのArrowやCategoryといった型クラスで、いろいろなパターンの合成が提供されているらしい。今回はこれを調べてみた。 (Cats バージョンは 2.12の 2.0.0-M1。ソースはここ) Arrow の階層 cats.arrow パッケージ内のArrow関連の継承関係は、下図のようになる。 以降、これらの型クラ

    Arrowまわりの射の合成いろいろ - Qiita
  • 単一代入のモノイド、スタンピングモナド、モナド工場 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日モニャドセミナー3を開催しました。僕(檜山)がどうも熱暴走していた(熱で暴走したんじゃなくて、暴走して熱を出したのかも)きらいがありました。とりあえず、説明があやふやだったところを補足します。 次の話をしました; 「破壊的代入と単一代入を自明モノイドで定式化できる。ただし、単一代入のモデル化は実際にやってみると微妙にうまくいかない」と。で、「どこがうまくいかないのか?」とのご質問。「昔やってみたとき、うまくいかなかった記憶がある」と要領を得ない返答をしたのですが、何がうまくいかなかったかサッパリ思い出せません。 という事情なので、最初から全部計算し直してみることにしました。僕は1桁の足し算とかしょっちゅう間違うので、そのテのミスで「うまくいかない」と思い込んでいた可能性もあります。以下に、確認の過程を全部書き下すので、ご興味がある方は(いるのか?)チェックしてみてください。なにか間違い

    単一代入のモノイド、スタンピングモナド、モナド工場 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 普遍性

    普遍性 alg-d http://alg-d.com/math/kan_extension/ 2024 年 1 月 16 日 圏論で重要な考え方の一つが普遍性 (universal property) である.普遍性を使うと,与 えられた圏 C の中で様々な「構成」が可能となる. 例えば「構成」の例として,Set, Grp, Top などの多くの圏においては,二つの対象 a, b が与えられたときに直積と呼ばれる新しい対象 a × b が定義される.実は,一般の圏 C においても (存在するかは分からないが) 直積が定義できる.まずはそれを見てみよう. 定義. C を圏,a, b ∈ C を対象とする.a と b の直積 (product) とは,3 つ組 hu, p0, p1i であって以下の条件を満たすものである. (1) u は C の対象である. (2) p0 : u → a,p1

  • プログラマのための圏論 (執筆中)

    Bartosz Milewski "Category Theory for Programmers" 原文: https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/ pdf: https://github.com/hmemcpy/milewski-ctfp-pdf 原文は pdf, TeX ソース, 画像など全て CC BY-SA 4.0 ライセンスで無料公開されています.当和訳文も同ライセンスで無料公開します. https://creativecommons.org/licenses/by-sa/4.0/ この和訳プロジェクトは現在進行中です.和訳に協力してくださる方は是非ご連絡下さい.ガイドライン: https://zenn.dev/taketo1024/articles/4

    プログラマのための圏論 (執筆中)
  • Dynamorphism 概論

    1. はじめに1.1. まえがき この記事では、関数型プログラミングにおいて動的計画法(Dynamic Programming)を行う手法の一つである dynamorphism について解説します。 しかし、dynamorphism という概念はそれ単体で説明できるものではなく、F-代数 や catamorphism, anamorphism, hylomorphism, histmorphism などの各種概念を用いないと説明できないものです。そこでこの記事では順々とそれらの概念を追っていき、最後にdynamorphismに行き着くような構成になっています。 そのため、この記事は dynamorphism の説明記事であると同時に、F-(余)代数や catamorphism, anamorphism 等に関する解説記事でもあります。 ここで留意していただきたい点が何点かあります。いわゆる

  • Scalaで圏論チョット学ぶ

    ࠓ೔ͷΰʔϧ 6 関数型プログラミング のライブラリ ・Scalaz ・Cats etc… 圏論 ・圏 ・関⼿ ・⾃然変換 etc… 概念を 使っている 使う ⾒え隠れしても怖くない! チョットわかる! ※ エンジニアのよく⾔う 「完全に理解した」→ 「全然わからん」 →「チョットわかる」の「チョットわかる」ではなく ⽂字通りの「チョットわかる」がゴールです

    Scalaで圏論チョット学ぶ
    Windymelt
    Windymelt 2019/10/28
    おもしろかった
  • Home

    https://github.com/scalajp/introduction-to-category-theory-in-scala-jp/wiki に移動しました。こちらは、ミラーとさせていただきます。 これは、Typesafe 社の Director Professional Services である Heiko Seeberger 氏による「Introduction to Category Theory in Scala」の翻訳文です。誤訳、誤記などがありましたら、 日Scalaユーザーズグループの「圏論入門 レビューのお願い」トピックに投稿していただくか、@quassia88 にご連絡ください。 もし君が僕みたいに、以前はJavaディベロッパーで、Scalaのファンになったばかりなら、君は多分遅かれ早かれ、モナドやら関手やらの、圏論の分野からやってきた謎に遭遇するだろう。そうい

    Home
  • はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記

    全体目次: 第1歩:しりとりの圏 (このエントリー) 第2歩:行列の圏 第3歩:極端な圏達 第4歩:部分圏 第5歩:変換キューの圏 第6歩:有限変換キューと半圏 第7歩:アミダの圏 第8歩:順序集合の埋め込み表現 第9歩:基に戻って、圏論感覚を養うハナシとか 付録/番外など: 中間付録A:絵を描いてみた 番外:同期/非同期の結合 中間付録B:アミダとブレイド 番外:米田の補題に向けてのオシャベリ 一部のプログラミング言語の背景として、圏論(カテゴリー論)が使われたりするせいか、以前に比べれば多少は圏論に興味を持つ人が増えたような気がしなくもないような。でも、安直な入門的文書はあまり見かけないですね。もちろん、シッカリした教科書や論説はあるんですが、どうもシッカリし過ぎているような。例えば、圏の例として「コンパクト・ハウスドルフ空間と連続写像の圏」とか言われてもねぇ(この例はいい例なんです

    はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記
  • 1