You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
CPL: An interpreter of Hagino's Categorical Programming Language (CPL). CPL is a functional programming language based on category theory. Data types are declared in a categorical manner by adjunctions. Data types that can be handled include the terminal object, the initial object, the binary product functor, the binary coproduct functor, the exponential functor, the natural number object, the fun
Haskell, ITこの記事はHaskell Advent Calendar 2013の3日目の記事です。 目次どうして?ファンクタを拡張しようおさらい引数をふたつ取ろう逆転の発想共変・反変・自由変・固定変データ型の整理正の位置と負の位置自由変と固定変ファンクタ類を自動生成しようまとめおまけThornについてCPLであそぼう どうして?ファンクタはHaskellに欠かせないものですが、ファンクタを一般化して見るという見方は意外に広まっていないように感じます。分かってしまえば単純な話だけにもったいないと思ってこの記事を書くことにしました。 また、僕は最近Thornというライブラリを作りました。これは、さまざまなデータ型から関手や畳み込み・展開をTemplate Haskellを使って自動生成するライブラリです。このライブラリを作るなかで気づいたことも合わせて書いていこうと思います。 ファン
ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで
数多くのHaskellライブラリのを手がけるEdward Kmettさんのライブラリを勉強しよう! という趣向で開催されたekmett勉強会に参加して来ました。 本当はその日の内容を一つ一つご紹介できれば良いのですが、うっかりメモのファイルを削除するというドジっ子っぷりをキめてしまったので、曖昧な記憶を元に「こんなんだったお><。」という話を書こうかなと思います。 lens ブログ主担当。発表資料は以下。 http://www.slideshare.net/itsoutoftunethismymusic/ekmett-17955009 https://github.com/ekmett/lens/wiki/Derivation を大いに参考にしました。 発表後パフォーマンスについての質問があったのですがお勉強不足でお答えできず。 ekmett氏曰く、「黒魔術使ってるから、いまやbaseライ
どうも。 清く正しい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 ::
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,
圏論勉強会 第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クラスのインスタンスであることが求められる。忘却関手というのは、上半分の圏からその
圏論勉強会ではない方の圏論勉強会 第3回に来ました。資料とustreamは公開されています。 今回からヘッドセット完備 中高生も見ているらしい(のでプログラミング以外のネタも) 第3回: 様々な圏 / 講師 @9_ties さん 視野が狭くならないよう、プログラムに関わらず色々な圏を見る 定義の復習: 圏〜自然変換まで。(自然変換はまだ雰囲気だけでOK) 主役級の圏を紹介 Sets*1 対象が(小さい)集合、射が関数、関数合成 とんでもなく巨大な圏 整数論とか実数論とかと規模が違う。色々問題が起こる 宇宙(universe) : 基礎論の分野なのでそこまで詳しく知らなくてもOK Setsの対象すべてからなる集合Uを考えると、U∈U?? 対角線論法使ってごにょごにょすると、カントールのパラドクスにつながる。 数学で必要な集合を全て含む"領域" U。もはや集合と呼べないもの。色んな宇宙がある
圏論勉強会ではない方の圏論勉強会 第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.
圏論勉強会ではない方の圏論勉強会 第6回です。資料とustreamは公開されています。 第6回: 積・余積・極限 / 講師 @9_ties さん 普遍性の概念によって定義される極限と余極限について 終対象 任意の対象から射がひとつだけ存在 同型を除いて一意 1と1'があれば、!1 . !1' : 1 → 1、id : 1 → 1なので、唯一性から!1 . !1' = id Well-defined性 定義が複数通りある場合に、矛盾が起きないこと 終対象も複数あるが、どれをとっても議論に影響しない 始対象 → 双対圏における終対象 よって、同型を除いて一意 双対性原理 → 任意の圏における正しい文は、双対圏においても正しい 圏の公理がドメイン、コドメインについて対称なことによる Setsの始対象 → 空集合(1つだけ)、終対象 → 単集合(複数個ある) Setsの圏は非対称性がある Monの
Understanding Yoneda Posted by Bartosz Milewski under Category Theory, Functional Programming, Haskell, Programming, Tutorial, Type System [27] Comments You don’t need to know anything about category theory to use Haskell as a programming language. But if you want to understand the theory behind Haskell or contribute to its development, some familiarity with category theory is a prerequisite. Cate
圏論勉強会ではないモノイド勉・・・いや、圏論勉強会 第2回に来ました。資料とustreamは公開されています。 第2回: モノイド・群 / 講師 @9_ties さん モノイド、圏は計算機に必要な概念 対象が1つの圏。シンプルだけどシンプル過ぎない圏 約束: 自然数は0以上。Haskell的なセクションの記法を使う モノイド: (M, ・)の組。結合率、単位元 M は台集合 モノイドの例 自然数(N, +), (N, ×) 整数、有理数、実数、複素数も同様 Aの要素の有限列と、++ ([1,2] ++ [3, 4]) ++ [5,6] == [1,2] ++ ([3,4]++[5,6]) []が単位元 文字列も同様 論理和(単位元false)、論理積(単位元true) 集合の∪(単位元Φ)と∩(単位元A)。(ただし、冪集合P(A)の元を使う) max(単位元は最小値)、min(単位元は最大
圏論勉強会ではない方の圏論勉強会 第7回です。資料とustreamは公開されています。 司会の方がワークスアプリケーションズ社を退社されたので今回からバトンタッチ 後半第一回目 第7回: 様々な極限 | 代数的データ型 / 講師 @9_ties さん 1時間で話せる内容ではないので、証明とかは家で読んで 「ここまで生き残った皆さんなら」 錐の圏の終対象、始対象がlimit, colimit 空圏、離散圏は前回やった イコライザ、コイコライザ 2本の平行射からなる圏のlimit, colimit この定義から詳細な定義を考えるのは良い練習問題 「f.e = g.eで、f.x=g.xなる任意のxについて、e.u=xを満たすuが唯一存在」 Setsでのイコライザ f.e=g.eなので、fとgで同じ所へ移る要素のみ集める。唯一性から包含写像 f(x,y)=x^2+y^2、g(x,y)=1とするとe
きしだൠ(K1S) @kis あぁ、モナドというのは、自己関手の圏におけるモノイド対象なのだな、なるほど。たとえばOptionalでいうと、Optionalはなんらかの型の値を持っていてその型自体が圏なのだけど、その圏であるOptionalからOptionalへの関数、つまり自己関手を対象とした圏の対象、と。 ると @cocoa_ruto @kis それは恒等モナドであって圏論の一般のモナドやHaskellの一般のモナドではありません。自己関手は圏(型ではありません)から同じ圏への関手です。(続く)
先週末、ekmett勉強会なる会が開かれました。 (発起人の@tanakhさん、ありがとうございます!) ekmett勉強会 (partake) ekmettとは、HaskellやScalaにて重要なlibrary群を、ありえないスピードで作り上げていくEdward Kmmetさんのことです。 ekmett (github) 勉強会にはekmettさんがビデオチャットで参加されていて、会の最後は質問大会となりました。 その中で、私が 「Kmettさんの抽象力の源泉はどこにあるのか?」 と尋ねたところ(@nushioさん、通訳ありがとうございます!) 「(意訳すると)圏論」 とのお答えでした。 @taketon_ Exactly. =) Category theory is just a great source of generalized tools that people have b
Masahiro Sakai's presentation at HAMA.jp <http: />. (revised version)Read less
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く