Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

圏論に関するigrepのブックマーク (42)

  • Haskellのzip関数を一般化すると何になるか

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

    Haskellのzip関数を一般化すると何になるか
  • ベクトルからリストを作る方法 〜次数付きモナドのカン拡張〜

    ベクトルとリスト 要素を並べたデータ構造を考える時、 ベクトルは長さが予め(型レベルで)決められたもの リストは任意の長さを取れるもの と区別することがあります。 Haskellの型で表すと、

    ベクトルからリストを作る方法 〜次数付きモナドのカン拡張〜
  • 随伴を使って理解するStateモナドの実装

    前回の記事は魔法のように見えるStateモナドの実装も、順を追って見ていけば理解することは難しくないという話でした。 しかし状態の変更を順番に処理するというような手続き的な考え方にかなり近い構造が、うまくモナドになってくれるというのは少し不思議ですよね。 この記事では タプル (a, b) 関数 a -> b カリー化 curry :: ((a, b) -> c) -> a -> b -> c uncurry :: (a -> b -> c) -> (a, b) -> c といったHaskellの基的な要素が随伴と呼ばれる関係を構成することを見て、 その随伴からStateモナドが導かれることを説明していきたいと思います。 随伴 二つの圏 C, D と二つの関手 F : C \rightarrow D, G : D \rightarrow C が与えられたとしましょう。 もし GF = {

    随伴を使って理解するStateモナドの実装
  • 圏論入門|日本評論社

    第1章 圏・関手・自然変換 1.1 集合と写像から 1.2 圏・対象・射 1.3 圏のデータ構造 1.4 関手・反変関手 1.5 忠実関手と充満関手 1.6 自然変換 1.7 Haskの部分圏 第2章 自然変換と圏同値 2.1 関手圏 2.2 圏同値 第3章 普遍性と極限 3.1 始対象と終対象 3.2 積 3.3 余積 3.4 極限 3.5 余極限 3.6 極限の存在 3.7 余極限の存在 第4章 関手と極限の交換 4.1 関手は錐や余錐を写す 4.2 Hom関手と極限 4.3 Hom関手と余極限 4.4 実行可能な例 4.5 極限を関手とみる 第5章 随伴 5.1 随伴とは 5.2 単位と余単位 5.3 三角等式 5.4 普遍射と随伴 5.5 随伴の同値な言い替え 5.6 随伴と圏同値 5.7 随伴の大局的な自然性 5.8 随伴と極限 第6章 モナドとHaskellのMonad 6.1

    圏論入門|日本評論社
  • 随伴関手とは - Qiita

  • 圏論とプログラミング / Category Theory and Programming

    シンポジウム「圏論的世界像からはじまる複合知の展望」@慶応大学 (Jan 25, 2020) http://www.inter.ipc.i.u-tokyo.ac.jp/symposium.html 「圏論とプログラミング」発表スライドメモ - Qiita https://qiita.com/i…

    圏論とプログラミング / Category Theory and Programming
    igrep
    igrep 2020/01/31
    やっぱこの辺さっぱりだなぁ
  • Adjunctions in the wild: foldl

    Adjunctions in the wild: foldl
    igrep
    igrep 2020/01/21
    “it actually is able to formalize what we mean by “opposite concepts”. The process of identifying a functor’s “opposite concept” (if it exists) will only help is better understand the functor we’re thinking about, in terms of how it works and how it is used.”
  • GitHub - morphismtech/free-categories: free categories

  • Codensity Monad - Just $ A sandbox

    Codensity という型がある. 定義は以下. newtype Codensity m a = Codensity { runCodensity :: forall b. (a -> m b) -> m b } instance Functor (Codensity k) where fmap f (Codensity m) = Codensity (\k -> m (k . f)) instance Monad (Codensity f) where return x = Codensity (\k -> k x) m >>= k = Codensity (\c -> runCodensity m (\a -> runCodensity (k a) c)) これの何が良いかと言うと, これは以下のようにMonadFreeな作用を持つ. instance (Functor f, Mon

  • 双対的にみる余帰納法 1.イントロ - Qiita

    双対的にみる余帰納法シリーズ 1. イントロ 2. 帰納法と代数 3. 余帰納法と余代数 はじめに 帰納法について圏論的な見方を解説した日語のWebページはそれなりにあるが, 余帰納法についてはみかけない. しかし, Haskellで使われる無限リストは余帰納的なデータの代表例であり, 余帰納法の解説にはある程度の意味があると信じて記事を書く. 帰納法は知っているけど, 余帰納法って何? という読者が大半かと思われるので, まず記事では余帰納法の使い方に焦点を当てて余帰納法への導入を行なう. その後, 余帰納法が帰納法の双対になっていることや, 余帰納的な証明手法であるBisimulationについていくつかの記事に分けて解説する(予定). 事前知識 読者が以下のことを知っていることを前提に以降の記事を書く. 圏論についての基的なこと 圏や関手, 直積, 直和 帰納法についての知識

    双対的にみる余帰納法 1.イントロ - Qiita
  • Programming with Universal Constructions

    Programming with Universal Constructions Posted by Bartosz Milewski under Programming 1 Comment As functional programmers we are interested in functions. Category theorists are similarly interested in morphisms. There is a slight difference in approach, though. A programmer must implement a function, whereas a mathematician is often satisfied with the proof of existence of a morphism (unless said

    Programming with Universal Constructions
  • 量子コンピューティングのための圏論入門 (2018/11/05 19:00〜)

    今回勉強する内容 (前説) - OpenQLプロジェクトをご紹介します (ガイダンス:基礎&実用) - 初めてご参加の方向けコンテンツです。 - 量子コンピューターや量子プログラムに関する概略と、量子コンピューターや量子情報を始める上で必要となる 俯瞰的な知識や量子コンピューター関連の状況を取り上げます。 (題:理論&実践) - 量子情報のための圏論を学びます。 『圏論による量子計算のモデルと論理 』という書籍があります。 このを読むと、「量子計算は圏論という数学で論じることができる」ことが分かるそうです。 ただ、このを読み始めるには、前提として圏論の深い知識が必要になるようです。 ※会の主催者はこの書籍を読み始める知識がなく、量子計算と圏論の関係を 論じることすらできません。そこでこのイベントを企画しました。 この回で取り上げるのは、どなたでも PDF をダウンロードできて、 全

    量子コンピューティングのための圏論入門 (2018/11/05 19:00〜)
    igrep
    igrep 2018/09/30
    "『圏論による量子計算のモデルと論理 』という書籍があります。 この本を読むと、「量子計算は圏論という数学で論じることができる」ことが分かるそうです。"
  • Category-Theory-Presentation

    Category-Theory-Presentation An Haskell oriented introduction to Category Theory (with basket of cats!) http://yannesposito.com/Scratch/en/blog/Category-Theory-Presentation/

    igrep
    igrep 2018/09/11
    ブクマしてなかった...!
  • iOSDC Japan 2018 で発表した「圏論とSwiftへの応用」の補足

    この記事は、 iOSDC Japan 2018 で圏論について話しました + Storyboard/AutoLayout相談会しました - Qiita の続編です。 先週、8月30日〜9月2日にかけて開催された iOSDC Japan 2018 で登壇発表した 「圏論とSwiftへの応用」 の補足になります。 CfP / スライド CfP: 圏論とSwiftへの応用 by 稲見 泰宏 | プロポーザル | iOSDC Japan 2018 - fortee.jp Slide: 圏論とSwiftへの応用 / iOSDC Japan 2018 - Speaker Deck スライドメモ: iOSDC Japan 2018 「圏論とSwiftへの応用」発表スライドメモ - Qiita まとめ: 圏論とSwiftへの応用 @inamiy #iosdc #c - Togetter 動画: https

    iOSDC Japan 2018 で発表した「圏論とSwiftへの応用」の補足
  • Null Object as identity

  • Comonads

    This is part 23 of Categories for Programmers. Previously: Monads Categorically. See the Table of Contents. Now that we have covered monads, we can reap the benefits of duality and get comonads for free simply by reversing the arrows and working in the opposite category. Recall that, at the most basic level, monads are about composing Kleisli arrows: a -> m b where m is a functor that is a monad.

    Comonads
  • コモナドを使った抽象化の威力をライフゲームで試してみた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    コモナドを使った抽象化の威力をライフゲームで試してみた - Qiita
    igrep
    igrep 2018/03/22
    "countNeighboursとlifeはどちらも1つの点の振る舞いについて記述しているだけですがこれをextends\を使って全体を発展させる処理に簡単に変換することが出来ました"
  • V.S. Hask圏

    Hask圏 Haskellをラムダ計算とみなした時のsyntactic categoryをHask圏というのがよく言われる定義である(と思う)。 Haskellのtypeをobject, hom(A,B) をjudgement x:A |- M:B 全体(を適当な同値関係で割ったもの)とみなして圏を作る(このときしばしばjudgementとこのjudgementから作ったfunction λx.M を区別しない)。 さて基的な結果として次のことが知られている。 Hask#Is Hask even a category? Hask is not a category というわけでHask圏は圏にならないのでそのようなものは存在しない。 Why not? これはundefinedというヤバイ元の存在とcall-by-needの悪魔的評価規則が合わさりこのような現象が生み出される。 主にこの2

  • Haskellと層 - Qiita

    層とプログラミング はじめに Haskellは、モナドという圏論用語を言語仕様に採用した初めての実用プログラミング言語です。歴史的には、Godementが1958年に、層コホモロジーの計算のため使ったのが(コ)モナドの最初の例だと言われています。 層は何らかの空間の「形」を代数的に計算するための仕組みで、局所的な性質と大域的な性質の関係を圏論的に表現するフレームワークと言えます。 一言で言えば、層とは関数とその定義域の組の集りのようなものです。いろいろな大きさの鉱物の結晶が積み重なって、地球全体を地層が覆っている様子をイメージするとわかりやすいかもしれません。層を使うと、定義域が重なりあう部分関数の関係と、それらが全体に波及していく様子を、圏論的に、すっきり表すことができます。 層はいわゆる"幾何的論理(geometric logic)"のモデルでもあり、実はモナドも幾何的論理で表現できる

    Haskellと層 - Qiita
    igrep
    igrep 2017/12/31
    「へぇ~、そうなんだ...」というしょうもない感想しか出てこなくてすみません...
  • [Haskell] とびだせ!Hask圏 - Qiita

    Functor(関手)の話です。 HaskellのFunctorクラスはHask圏からHask圏への関手しか表現できません。 そこで、Hask圏以外の圏についても使える関手のクラスを書いてみました。 よろしくね (*´σー`)エヘヘ #基的な用語と、HaskellのFunctorクラス 別のところにまとめました この章に書こうとしていた、「基的な用語の確認とHaskellのFunctorクラス」についての内容は、別の記事にまとめさせて貰いました。 内容としては、「HaskellのFunctorクラスはHask圏からHask圏への関手しか表現できません。」という文章の説明なので、それを読んで「そらそうだろ」って感じなら読み飛ばして次の章を読んで頂いて大丈夫です。 #とびだせ!Hask圏 HaskellのFunctorは、Hask圏からHask圏への関手を表現しています。 しかし、Hask

    [Haskell] とびだせ!Hask圏 - Qiita
    igrep
    igrep 2017/12/14
    どちらにしてもHask圏に閉じるのでとびだしたのはデフォルトのFunctorのみでは。(無粋なツッコミ)