Introduction to Categorical Programming

Masahiro Sakai
Masahiro SakaiSoftware Engineer en Preferred Networks, Inc.
Introduction to
Categorical Programming
Haskell Annual Meeting Autumn.jp 2009
                  酒井 政裕 @ヒビルテ
今日話したいこと

なぜに圏論?
Haskell での圏論プログラミング
The Evolution of a Haskell Programmer
圏論プログラミング言語 CPL
圏論とは?

圏論(けんろん、category theory)は、数学的
構造とその間の関係を抽象的に扱う数学理
論の 1 つである。考えている種類の「構造」を
持った対象とその構造を反映するような対象
間の射の集まりからなる圏が基本的な考察
の対象になる。
             Wikipedia 「圏論」 より
圏

                                  対象(Object)
idX                         idY   X, Y, Z,
                f                 射(Morphism)
      X             Y
                                  f, g, idX,
                                  射の合成: ∘
                        g
          g∘f
                                  結合律
                    Z             (h∘g)∘f = h∘(g∘f)
                        idZ       単位元
                                  f ∘ idX = f = idY ∘ f
圏論

 対象と射(矢印)による抽象化
 等式を図式で表現
              対象   射

              集合   関数
              位相   連続関数
              空間
              群    準同型
              型    プログラム
Haskellのデータ型と関数は圏になる

対象=データ型                     単位元律
  Int, Bool, [Int], Maybe    id . f = f = f . Id
 Int,
                            結合律
射=関数                         (f . g) . h = f . (g . h)
  not :: Bool→Bool,
 concat :: [[a]] → [a],
恒等射:
 id                         圏論の考え方を
射の合成=関数合成                    適用できる
 f.g
抽象的無意味

圏論は

 general abstract
    nonsense
と呼ぶ人もいるくらい、一般的
           一般的かつ抽象的
           一般的  抽象的
よくある質問:
 そんなのが、プログラミングに何の関係が?
 いったい何の役に立つのか?
なぜ圏論なのか?

ソフトウェアにとって「抽象化」は死活的に
重要
 対象ドメインの概念を計算機上でどう表現する?
 どうレイヤやモジュールを分け、どういう構造でプロ
 グラムを書くのか?
圏論は数学で育まれた抽象化の技法の宝庫
 ソフトウェアやプログラミングに使える概念も沢山
 特に関数型言語は数学や圏論と相性が良い
 Haskellを使ってて良かったね (^^
ここで CM です

Software Abstractions
  Daniel Jackson
  MIT Press / April 2006


抽象化とソフトウェアの
設計に悩むあなたに。
  注: 圏論とは特に関係あ
  りません。
今日話したいこと

なぜに圏論?
Haskell での圏論プログラミング
The Evolution of a Haskell Programmer
圏論プログラミング言語 CPL
Haskell での圏論プログラミング

  圏論プログラミング
      =
 圏論の概念を使って、
  プログラムを構造化
Haskell での圏論プログラミング

 Haskellで圏論というとモナドとかArrowとか?

 今回はそういう話ではなくて、
 再帰的なプログラムの書き方についての話

 まずは圏論のことは一度忘れて、普通の
 Haskellプログラムを
リストの構造に関する再帰
例:                    パターン
sum :: [Int] → Int      空リストの場合の値
sum [] = 0              consの場合の値を、
                        headの値と、tailに対して
sum (x:xs) =
                        関数を適用した結果から
 x + sum xs             計算
                      コードで書くと:
length :: [a] → Int   f :: [X] → Y
length [] = 1         f [] = n
length (x:xs) =       f (x:xs) = c x (f xs)
  1 + length xs
高階関数foldrによるパターンの抽象化
パターン:                   foldrを使った定義例:
f [] = n                   sum = foldr (+) 0
f (x:xs) = c x (f xs)      length =
                             foldr (λ_ n → n) 0
高階関数として抽象化!                xs ++ ys =
foldr :: (a→b→b) → b         foldr (:) ys xs
     → [a] → b             map f = foldr
foldr c n [] = n             (λx xs → f x : xs) []
foldr c n (x:xs) =
  c x (foldr c n xs)
なぜfoldrのような形で関数を書くのか?

良い性質をもった再帰だから
 人間が読む上で、処理の流れが分かりやすい
 c と n が停止する式で、xsが有限リストなら、
 foldr c n xs も停止する。
 プログラムの性質が推論しやすい
   例) foldr c n . map f = foldr (λx a → c (f x) a) n
  結果として、最適化しやすい
それに対して、無制限の再帰は
  命令型言語での goto のようなもので、やっかい
♥
明示的な再帰を使って書く前に、foldrとかで
書けないか、考えて見ましょう。
foldrと圏論の関係は?

リスト型とは

    nil, cons, foldr
が定義された抽象データ型
foldrは単なる便利な高階関数ではなく、
実はリスト型にとって根源的な関数
⇒ 圏論的なリスト型の定義に由来
リストの代数系
代数 = 型とその型の値を作る演算の組
リストの代数
 型と二つの演算 (b, n :: b, c :: a→b→b)
 具体例: ([a], [], (:)), (Int, 0, λ_ x → x+1)
準同型
 代数 (b, n, c) から代数 (b’, n’, c’) への準同型 h
 h :: b→b’ で以下を満たすもの
   h n = n’
   ∀x::a, y::b. h (c x y) = c’ x (h y)
foldrとリスト型の本質

 代数 ([a], [], (:)) の特別な性質 (普遍性)
   任意の代数 (b,n,c) に対して、 ([a], [], (:)) から
  (b,n,c) への、準同型 h が唯一つ存在 !
 foldr c n はこの唯一つの準同型
  foldr :: (a→b→b) → b → ([a]→b)
  foldr c n [] = n
  foldr c n (x : xs) = c x (foldr c n xs)
 普遍性を持つ (b, n, c) がリスト型
 これを満たせば実装は何でもいい。
他の帰納的データ型の場合の例 (自然数)

自然数のデータ型                iterを使った定義例:
 data Nat = Zero         plus :: Nat→Nat→Nat
           | Succ Nat    plus n = iter n Succ
畳み込み用の関数                 mult :: Nat→Nat→Nat
                         mult n =
 iter :: a→(a→a)
                           iter Zero (plus n)
     → (Nat→a)
 iter z s Zero = z      Natの特徴づけ
 iter z s (Succ n) =     (Nat, Zero, Succ) は
   s (iter z s n)        (x, z::x, s::x→x) の中で
                         普遍的なもの
                         一意な準同型は iter z s
この先の話
このような話はリストや自然数に限らず、木など、他
の帰納的データ型でも実は同様
  F-始代数と catamorphism
foldrの双対
  無限リストとunfoldr
  その一般化: F-終余代数と anamorphism
より複雑な関数を表現する方法
 Paramorphism, Histomorphism, Comonadic
 Iteration
  というようなことを、ちゃんと話すつもりが、
時間切れ。ここからが面白い話なのにごめんなさい
目次

なぜに圏論?
Haskell での圏論プログラミング
The Evolution of a Haskell Programmer
圏論プログラミング言語 CPL
The Evolution of a Haskell Programmer

 http://www.willamette.edu/~fruehr/haskell/
 evolution.html
 Categorical Programming に関係するもの
   Beginning graduate Haskell programmer
   Origamist Haskell programmer
   Cartesianally-inclined Haskell programmer
   Ph.D. Haskell programmer
   Post-doc Haskell programmer
Beginning graduate Haskell programmer
    (graduate education tends to liberate one from petty concerns about,
    e.g., the efficiency of hardware-based integers)

-- Nat, plus, mult の定義                -- two versions of
                                         factorial

-- primitive recursion                fac' :: Nat → Nat
primrec :: a → (Nat → a               fac' = primrec one (mult .
   → a) → Nat → a                       Succ)
primrec z s Zero = z
primrec z s (Succ n) =                (zero : one : two :
   s n (primrec z s n)                  three : four : five : _) =
                                        iterate Succ Zero
     iterの強化版:
  sの引数にnが引数に追加
原始帰納法

定義
 primrec z s Zero = z
 primrec z s (Succ n) = s n (primrec z s n)
 fac' = primrec one (mult . Succ)
これって本当に階乗になってる?
 fac’ Zero = primrec one (mult . Succ) Zero = one
 fac’ (Succ n)
 = primrec one (mult . Succ) (Succ n)
 = (mult . Succ) n (primrec one (mult . Succ) n)
 = (mult . Succ) n (fac’ n) = mult (Succ n) (fac’ n)
原始帰納法 (cont’d)

 primrec
   primrec :: a → (Nat → a → a) → Nat → a
   primrec z s Zero     =z
   primrec z s (Succ n) = s n (primrec z s n)
 実はiterで表現できる
   primrec’ z s = snd .
      iter (Zero, z) (λ(a,b) → (Succ a, s a b))
   練習問題: 等しさを証明してみましょう
他のやつ
準備が間に合わなかったので省略 m(_ _)m
でも簡単に概要だけ

Origamist Haskell programmer
Cartesianally-inclined Haskell programmer
  リストに関する Hylomorphism
Ph.D. Haskell programmer
  Polytypic な Hylomorphism
Post-doc Haskell programmer
  Polytypic な Paramosphirm, Zygomorphism
目次

なぜに圏論?
Haskell での圏論プログラミング
The Evolution of a Haskell Programmer
圏論プログラミング言語 CPL
圏論プログラミング言語 CPL

CPL (Categorical Programming Language)
圏論に基づいたデータ型定義を持つプログラ
ミング言語
実装:
http://www.tom.sfc.keio.ac.jp/~sakai/hiki/?
CPL
終対象 (terminal object)

 終対象 (terminal object) 1
   right object 1 with !
   end object;
 いわゆるユニット型
 任意の型からの関数がただ一つ存在する型
 Xからの1への唯一の関数を ! : X→1 と表す
自然数
left object nat with pr is   任意の型X と z :
  zero: 1 -> nat             1→X, s : X→X に対
  succ: nat -> nat           して、
end object;                  以下を満たす
                             pr(z,s) : nat→X が唯
                             一つ存在
                               pr(z, s) . zero = z
                               pr(z, s) . succ = s .
                               pr(z, s)
                             左から右の書き換え
                             規則とみなす
-- タプル                        -- 自然数
right object prod(a,b) with   left object nat with pr is
   pair is                      zero: 1 -> nat
  pi1: prod -> a                succ: nat -> nat
  pi2: prod -> b              end object;
end object;
                              -- 直和 (Either)
-- 関数型                        left object coprod(a,b) with
right object exp(a,b) with        case is
   curry is                     in1: a -> coprod
  ev: prod(exp,a) -> b          in2: b -> coprod
end object;                   end object;
おわりに

これから結論を考えるよ
1 de 33

Recomendados

Introduction to Categorical Programming (Revised) por
Introduction to Categorical Programming (Revised)Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)Masahiro Sakai
6.4K vistas53 diapositivas
自動定理証明の紹介 por
自動定理証明の紹介自動定理証明の紹介
自動定理証明の紹介Masahiro Sakai
8.3K vistas23 diapositivas
代数的実数とCADの実装紹介 por
代数的実数とCADの実装紹介代数的実数とCADの実装紹介
代数的実数とCADの実装紹介Masahiro Sakai
3.8K vistas71 diapositivas
Scala 初心者が米田の補題を Scala で考えてみた por
Scala 初心者が米田の補題を Scala で考えてみたScala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみたKazuyuki TAKASE
5.7K vistas64 diapositivas
Scala 初心者が Hom 函手を Scala で考えてみた por
Scala 初心者が Hom 函手を Scala で考えてみたScala 初心者が Hom 函手を Scala で考えてみた
Scala 初心者が Hom 函手を Scala で考えてみたKazuyuki TAKASE
487 vistas21 diapositivas
圏とHaskellの型 por
圏とHaskellの型圏とHaskellの型
圏とHaskellの型KinebuchiTomo
8.1K vistas45 diapositivas

Más contenido relacionado

La actualidad más candente

私を SKI に連れてって por
私を SKI に連れてって私を SKI に連れてって
私を SKI に連れてってSusisu
2.2K vistas66 diapositivas
Real World OCamlを読んでLispと協調してみた por
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたblackenedgold
4K vistas39 diapositivas
代数トポロジー入門 por
代数トポロジー入門代数トポロジー入門
代数トポロジー入門Tatsuki SHIMIZU
3.1K vistas90 diapositivas
topology of musical data por
topology of musical datatopology of musical data
topology of musical dataTatsuki SHIMIZU
2.7K vistas55 diapositivas
純粋関数型アルゴリズム入門 por
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
6.6K vistas33 diapositivas
Similarity functions in Lucene 4.0 por
Similarity functions in Lucene 4.0Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0Koji Sekiguchi
8.5K vistas24 diapositivas

La actualidad más candente(19)

私を SKI に連れてって por Susisu
私を SKI に連れてって私を SKI に連れてって
私を SKI に連れてって
Susisu 2.2K vistas
Real World OCamlを読んでLispと協調してみた por blackenedgold
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
blackenedgold4K vistas
純粋関数型アルゴリズム入門 por Kimikazu Kato
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Kimikazu Kato6.6K vistas
Similarity functions in Lucene 4.0 por Koji Sekiguchi
Similarity functions in Lucene 4.0Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0
Koji Sekiguchi8.5K vistas
関数プログラミング入門 por Hideyuki Tanaka
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka21.8K vistas
introductino to persistent homology and topological data analysis por Tatsuki SHIMIZU
introductino to persistent homology and topological data analysisintroductino to persistent homology and topological data analysis
introductino to persistent homology and topological data analysis
Tatsuki SHIMIZU961 vistas
関数型プログラミング入門 with OCaml por Haruka Oikawa
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa12.4K vistas
とぽろじー入門(画像なし版) por Katsuya Ito
とぽろじー入門(画像なし版)とぽろじー入門(画像なし版)
とぽろじー入門(画像なし版)
Katsuya Ito4.1K vistas
ラムダ計算入門 por Eita Sugimoto
ラムダ計算入門ラムダ計算入門
ラムダ計算入門
Eita Sugimoto33.7K vistas
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム por Tasuku Soma
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム
Tasuku Soma1.6K vistas
(Lambdaだけで) 純LISPのような ナニかを作る por Daichi Teruya
(Lambdaだけで)純LISPのようなナニかを作る(Lambdaだけで)純LISPのようなナニかを作る
(Lambdaだけで) 純LISPのような ナニかを作る
Daichi Teruya2.7K vistas
PRML 1.6 情報理論 por sleepy_yoshi
PRML 1.6 情報理論PRML 1.6 情報理論
PRML 1.6 情報理論
sleepy_yoshi9.4K vistas
ML: Sparse regression CH.13 por Daisuke Yoneoka
 ML: Sparse regression CH.13 ML: Sparse regression CH.13
ML: Sparse regression CH.13
Daisuke Yoneoka1.1K vistas

Similar a Introduction to Categorical Programming

(define)なしで再帰関数を定義する por
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義するblackenedgold
2.4K vistas38 diapositivas
Implicit Explicit Scala por
Implicit Explicit ScalaImplicit Explicit Scala
Implicit Explicit ScalaKota Mizushima
2.3K vistas90 diapositivas
Deep learning _linear_algebra___probablity___information por
Deep learning _linear_algebra___probablity___informationDeep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___informationtakutori
110 vistas40 diapositivas
Coq関係計算ライブラリの開発と写像の性質の証明 por
Coq関係計算ライブラリの開発と写像の性質の証明Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明Yoshihiro Mizoguchi
1.9K vistas31 diapositivas
mathemaical_notation por
mathemaical_notationmathemaical_notation
mathemaical_notationKenta Oono
819 vistas22 diapositivas
たのしい関数型 por
たのしい関数型たのしい関数型
たのしい関数型Shinichi Kozake
6.2K vistas94 diapositivas

Similar a Introduction to Categorical Programming(20)

(define)なしで再帰関数を定義する por blackenedgold
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
blackenedgold2.4K vistas
Deep learning _linear_algebra___probablity___information por takutori
Deep learning _linear_algebra___probablity___informationDeep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___information
takutori110 vistas
Coq関係計算ライブラリの開発と写像の性質の証明 por Yoshihiro Mizoguchi
Coq関係計算ライブラリの開発と写像の性質の証明Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明
Yoshihiro Mizoguchi1.9K vistas
mathemaical_notation por Kenta Oono
mathemaical_notationmathemaical_notation
mathemaical_notation
Kenta Oono819 vistas
パターン認識と機械学習6章(カーネル法) por Yukara Ikemiya
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
Yukara Ikemiya29.4K vistas
代数的データ型をラムダ計算の中で表現する方法 por syamino
代数的データ型をラムダ計算の中で表現する方法代数的データ型をラムダ計算の中で表現する方法
代数的データ型をラムダ計算の中で表現する方法
syamino7.6K vistas
Incanterの紹介 por mozk_
Incanterの紹介Incanterの紹介
Incanterの紹介
mozk_1.7K vistas
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010) por Koji Matsuda
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Koji Matsuda840 vistas
Topic model por saireya _
Topic modelTopic model
Topic model
saireya _2.6K vistas
第4回MachineLearningのための数学塾資料(浅川) por Shin Asakawa
第4回MachineLearningのための数学塾資料(浅川)第4回MachineLearningのための数学塾資料(浅川)
第4回MachineLearningのための数学塾資料(浅川)
Shin Asakawa766 vistas
命令プログラミングから関数プログラミングへ por Naoki Kitora
命令プログラミングから関数プログラミングへ命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ
Naoki Kitora3.8K vistas
Deep Learning を実装する por Shuhei Iitsuka
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装する
Shuhei Iitsuka75.3K vistas
Math tutorial public por Kenta Oono
Math tutorial publicMath tutorial public
Math tutorial public
Kenta Oono709 vistas
関数型都市忘年会『はじめての函数型プログラミング』 por Kenta USAMI
関数型都市忘年会『はじめての函数型プログラミング』関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
Kenta USAMI2.2K vistas
8.4 グラフィカルモデルによる推論 por sleepy_yoshi
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
sleepy_yoshi6.2K vistas

Más de Masahiro Sakai

DeepXplore: Automated Whitebox Testing of Deep Learning por
DeepXplore: Automated Whitebox Testing of Deep LearningDeepXplore: Automated Whitebox Testing of Deep Learning
DeepXplore: Automated Whitebox Testing of Deep LearningMasahiro Sakai
1.6K vistas25 diapositivas
Towards formal verification of neural networks por
Towards formal verification of neural networksTowards formal verification of neural networks
Towards formal verification of neural networksMasahiro Sakai
660 vistas32 diapositivas
関数プログラマから見たPythonと機械学習 por
関数プログラマから見たPythonと機械学習関数プログラマから見たPythonと機械学習
関数プログラマから見たPythonと機械学習Masahiro Sakai
31.4K vistas29 diapositivas
Writing a SAT solver as a hobby project por
Writing a SAT solver as a hobby projectWriting a SAT solver as a hobby project
Writing a SAT solver as a hobby projectMasahiro Sakai
2K vistas31 diapositivas
RClassify: Classifying Race Conditions in Web Applications via Deterministic ... por
RClassify: Classifying Race Conditions in Web Applications via Deterministic ...RClassify: Classifying Race Conditions in Web Applications via Deterministic ...
RClassify: Classifying Race Conditions in Web Applications via Deterministic ...Masahiro Sakai
794 vistas5 diapositivas
ゼロピッチ: MOOC por
ゼロピッチ: MOOCゼロピッチ: MOOC
ゼロピッチ: MOOCMasahiro Sakai
1.1K vistas8 diapositivas

Más de Masahiro Sakai(20)

DeepXplore: Automated Whitebox Testing of Deep Learning por Masahiro Sakai
DeepXplore: Automated Whitebox Testing of Deep LearningDeepXplore: Automated Whitebox Testing of Deep Learning
DeepXplore: Automated Whitebox Testing of Deep Learning
Masahiro Sakai1.6K vistas
Towards formal verification of neural networks por Masahiro Sakai
Towards formal verification of neural networksTowards formal verification of neural networks
Towards formal verification of neural networks
Masahiro Sakai660 vistas
関数プログラマから見たPythonと機械学習 por Masahiro Sakai
関数プログラマから見たPythonと機械学習関数プログラマから見たPythonと機械学習
関数プログラマから見たPythonと機械学習
Masahiro Sakai31.4K vistas
Writing a SAT solver as a hobby project por Masahiro Sakai
Writing a SAT solver as a hobby projectWriting a SAT solver as a hobby project
Writing a SAT solver as a hobby project
Masahiro Sakai2K vistas
RClassify: Classifying Race Conditions in Web Applications via Deterministic ... por Masahiro Sakai
RClassify: Classifying Race Conditions in Web Applications via Deterministic ...RClassify: Classifying Race Conditions in Web Applications via Deterministic ...
RClassify: Classifying Race Conditions in Web Applications via Deterministic ...
Masahiro Sakai794 vistas
SAT/SMT solving in Haskell por Masahiro Sakai
SAT/SMT solving in HaskellSAT/SMT solving in Haskell
SAT/SMT solving in Haskell
Masahiro Sakai3.4K vistas
SAT/SMTソルバの仕組み por Masahiro Sakai
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai36.7K vistas
Introduction to Max-SAT and Max-SAT Evaluation por Masahiro Sakai
Introduction to Max-SAT and Max-SAT EvaluationIntroduction to Max-SAT and Max-SAT Evaluation
Introduction to Max-SAT and Max-SAT Evaluation
Masahiro Sakai5.4K vistas
Aluminum: Principled Scenario Exploration through Minimality por Masahiro Sakai
Aluminum: Principled Scenario Exploration through MinimalityAluminum: Principled Scenario Exploration through Minimality
Aluminum: Principled Scenario Exploration through Minimality
Masahiro Sakai1.2K vistas
How a CDCL SAT solver works por Masahiro Sakai
How a CDCL SAT solver worksHow a CDCL SAT solver works
How a CDCL SAT solver works
Masahiro Sakai25.2K vistas
萩野服部研究室 スキー合宿 2012 自己紹介(酒井) por Masahiro Sakai
萩野服部研究室 スキー合宿 2012 自己紹介(酒井)萩野服部研究室 スキー合宿 2012 自己紹介(酒井)
萩野服部研究室 スキー合宿 2012 自己紹介(酒井)
Masahiro Sakai1K vistas
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P... por Masahiro Sakai
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
Masahiro Sakai839 vistas
“Design and Implementation of Generics for the .NET Common Language Runtime”他... por Masahiro Sakai
“Design and Implementation of Generics for the .NET Common Language Runtime”他...“Design and Implementation of Generics for the .NET Common Language Runtime”他...
“Design and Implementation of Generics for the .NET Common Language Runtime”他...
Masahiro Sakai907 vistas
Relaxed Dependency Analysis por Masahiro Sakai
Relaxed Dependency AnalysisRelaxed Dependency Analysis
Relaxed Dependency Analysis
Masahiro Sakai805 vistas
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg... por Masahiro Sakai
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
Masahiro Sakai1.3K vistas
自然言語をラムダ式で解釈する体系PTQのHaskell実装 por Masahiro Sakai
自然言語をラムダ式で解釈する体系PTQのHaskell実装自然言語をラムダ式で解釈する体系PTQのHaskell実装
自然言語をラムダ式で解釈する体系PTQのHaskell実装
Masahiro Sakai2.4K vistas
Whole Program Paths 等の紹介@PLDIr#3 por Masahiro Sakai
Whole Program Paths 等の紹介@PLDIr#3Whole Program Paths 等の紹介@PLDIr#3
Whole Program Paths 等の紹介@PLDIr#3
Masahiro Sakai1.4K vistas
Run-time Code Generation and Modal-ML の紹介@PLDIr#2 por Masahiro Sakai
Run-time Code Generation and Modal-ML の紹介@PLDIr#2Run-time Code Generation and Modal-ML の紹介@PLDIr#2
Run-time Code Generation and Modal-ML の紹介@PLDIr#2
Masahiro Sakai997 vistas

Último

東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』 por
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』Tokyo Institute of Technology
641 vistas4 diapositivas
救急医学会2023(発表).pdf por
救急医学会2023(発表).pdf救急医学会2023(発表).pdf
救急医学会2023(発表).pdfHirohisa Shimizu
62 vistas39 diapositivas
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『物質理工学院の変更点、出題のねらいと出題例』 por
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『物質理工学院の変更点、出題のねらいと出題例』東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『物質理工学院の変更点、出題のねらいと出題例』
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『物質理工学院の変更点、出題のねらいと出題例』Tokyo Institute of Technology
461 vistas4 diapositivas
GL10.pdf por
GL10.pdfGL10.pdf
GL10.pdfMasato FUKUHARA
18 vistas20 diapositivas
GP10.pdf por
GP10.pdfGP10.pdf
GP10.pdfMasato FUKUHARA
153 vistas20 diapositivas
松本良多 インタビュー | ArtUp Mi 2023.pdf por
松本良多 インタビュー | ArtUp Mi 2023.pdf松本良多 インタビュー | ArtUp Mi 2023.pdf
松本良多 インタビュー | ArtUp Mi 2023.pdfkrimsadatv
6 vistas12 diapositivas

Último(6)

東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』 por Tokyo Institute of Technology
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『物質理工学院の変更点、出題のねらいと出題例』 por Tokyo Institute of Technology
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『物質理工学院の変更点、出題のねらいと出題例』東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『物質理工学院の変更点、出題のねらいと出題例』
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『物質理工学院の変更点、出題のねらいと出題例』
松本良多 インタビュー | ArtUp Mi 2023.pdf por krimsadatv
松本良多 インタビュー | ArtUp Mi 2023.pdf松本良多 インタビュー | ArtUp Mi 2023.pdf
松本良多 インタビュー | ArtUp Mi 2023.pdf
krimsadatv6 vistas

Introduction to Categorical Programming