232 lines
7.4 KiB
HTML
232 lines
7.4 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||
|
<meta name="viewport" content="width=1024, user-scalable=no">
|
||
|
|
||
|
<title>Category Theory for Programming</title>
|
||
|
|
||
|
<!-- Required stylesheet -->
|
||
|
<link rel="stylesheet" href="core/deck.core.css">
|
||
|
|
||
|
<!-- Extension CSS files go here. Remove or add as needed. -->
|
||
|
<link rel="stylesheet" href="extensions/goto/deck.goto.css">
|
||
|
<link rel="stylesheet" href="extensions/menu/deck.menu.css">
|
||
|
<link rel="stylesheet" href="extensions/navigation/deck.navigation.css">
|
||
|
<link rel="stylesheet" href="extensions/status/deck.status.css">
|
||
|
<link rel="stylesheet" href="extensions/hash/deck.hash.css">
|
||
|
<link rel="stylesheet" href="extensions/scale/deck.scale.css">
|
||
|
|
||
|
<!-- Transition theme. More available in /themes/transition/ or create your own. -->
|
||
|
|
||
|
<link rel="stylesheet" href="themes/transition/horizontal-slide.css">
|
||
|
<!-- Style theme. More available in /themes/style/ or create your own. -->
|
||
|
<!-- <link rel="stylesheet" href="themes/style/web-2.0.css"> -->
|
||
|
<link rel="stylesheet" href="themes/style/y/main.css" />
|
||
|
<link rel="stylesheet" href="themes/style/y/solarized.css" />
|
||
|
<link href='http://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>
|
||
|
|
||
|
|
||
|
<!-- Required Modernizr file -->
|
||
|
<script src="modernizr.custom.js"></script>
|
||
|
|
||
|
</head>
|
||
|
<body class="deck-container">
|
||
|
|
||
|
<!-- Begin slides. Just make elements with a class of slide. -->
|
||
|
|
||
|
<section class="slide">
|
||
|
<h1>Category Theory <span class="and">&</span> Programming
|
||
|
<div><author style="font-size: .4em"><em class="base01">by</em> Yann Esposito
|
||
|
<div>
|
||
|
<twitter style="font-size: .5em">
|
||
|
<a href="http://twitter.com/yogsototh">@yogsototh</a>,
|
||
|
</twitter>
|
||
|
<googleplus style="font-size: .5em">
|
||
|
<a href="https://plus.google.com/117858550730178181663">+yogsototh</a>
|
||
|
</googleplus>
|
||
|
</div>
|
||
|
</author></div>
|
||
|
</h1>
|
||
|
</section>
|
||
|
|
||
|
<section class="slide">
|
||
|
<h2>Plan</h2>
|
||
|
<ul style="font-size: 2em">
|
||
|
<li class="yellow">Why?</li>
|
||
|
<li>What?</li>
|
||
|
<li>How?</li>
|
||
|
</ul>
|
||
|
</section>
|
||
|
|
||
|
<section class="slide">
|
||
|
<h2>Abstraction Example</h2>
|
||
|
<p>Something you see very often but in different instances.</p>
|
||
|
<p>Once you recognize the notion, you see it almost everywhere.</p>
|
||
|
<ul>
|
||
|
<li class="slide">Numbers: <em>0</em>,1,2,3,... (3400 BC, real numbers 760 BC)</li>
|
||
|
<li class="slide">Rational numbers: \(\frac{p}{q}\) (concept is prehistoric)</li>
|
||
|
<li class="slide">Negative numbers: ..., -3, -2, -1, 0, 1, 2, ... (100-50 BC)</li>
|
||
|
<li class="slide">Irrational numbers: \(\mathbb{A}\), \(\mathbb{R}\) (500 BC → Pythogoras killed Hippasus because of \(\sqrt{2}\)!)</li>
|
||
|
<li class="slide">Complex numbers: \(\mathbb{C}\) (100 AD, then 16th century)</li>
|
||
|
</ul>
|
||
|
</section>
|
||
|
|
||
|
<section class="slide">
|
||
|
<h2>Numbers ⇒ Set Theory (\(\infty\))</h2>
|
||
|
<table>
|
||
|
<tr>
|
||
|
<th>Numbers</th>
|
||
|
<th>Set Theory</th>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>\(\mathbb{N}\): \((+,0)\)</td>
|
||
|
<td>Semigroups</td>
|
||
|
</tr>
|
||
|
<tr class="slide">
|
||
|
<td>\(\mathbb{Z}\): \((+,0,\times,1)\)</td>
|
||
|
<td>Rings</td>
|
||
|
</tr>
|
||
|
<tr class="slide">
|
||
|
<td>\(\mathbb{Q}\)</td>
|
||
|
<td>Fields</td>
|
||
|
</tr>
|
||
|
<tr class="slide">
|
||
|
<td>\(\mathbb{R}\)</td>
|
||
|
<td>Complete Fields (<em class="base01">topology</em>)</td>
|
||
|
</tr>
|
||
|
<tr class="slide">
|
||
|
<td>\(\mathbb{C}\)</td>
|
||
|
<td>Algebræ</td>
|
||
|
</tr>
|
||
|
<tr class="slide"><td></td><td>Modules,Vector Spaces, Monoids, ...</td></tr>
|
||
|
</table>
|
||
|
<p class="slide">More <strong>general</strong>: more things are sets.<br/>
|
||
|
<span class="and">&</span> More <strong>precise</strong>: clear distinction between concepts)</p>
|
||
|
</section>
|
||
|
|
||
|
<section class="slide">
|
||
|
<h2>Set Theory ⇒? Category Theory</h2>
|
||
|
<table>
|
||
|
<tr>
|
||
|
<th>Numbers</th>
|
||
|
<th>Set Theory (\(\infty\))</th>
|
||
|
<th>Category Theory (relations)</th>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>\(\mathbb{N}\): \((+,0)\)</td>
|
||
|
<td>Semigroups</td>
|
||
|
<td>?</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>\(\mathbb{Z}\): \((+,0,\times,1)\)</td>
|
||
|
<td>Rings</td>
|
||
|
<td>?</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>\(\mathbb{Q}\)</td>
|
||
|
<td>Fields</td>
|
||
|
<td>?</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>\(\mathbb{R}\)</td>
|
||
|
<td>Complete Fields (<em class="base01">topology</em>)</td>
|
||
|
<td>?</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>\(\mathbb{C}\)</td>
|
||
|
<td>Algebræ</td>
|
||
|
<td>?</td>
|
||
|
</tr>
|
||
|
<tr><td></td><td>Modules,Vector Spaces, Monoids, ...</td><td>?</td></tr>
|
||
|
</table>
|
||
|
</section>
|
||
|
|
||
|
<section class="slide">
|
||
|
<h2><span class="yellow">/.*/</span> ⇒? Category Theory</h2>
|
||
|
<ul>
|
||
|
<li class="slide">Topology ⇒ Category Theory</li>
|
||
|
<li class="slide">Quantum Physics ⇒ Category Theory</li>
|
||
|
<li class="slide">Logic ⇒ Category Theory</li>
|
||
|
<li class="slide"><b>Programming</b> ⇒ Category Theory</li>
|
||
|
</ul>
|
||
|
<p class="slide">More <strong>general</strong>: more things are sets.<br/>
|
||
|
<span class="and">&</span> More <strong>precise</strong>: clear distinction between concepts)</p>
|
||
|
</section>
|
||
|
|
||
|
<section class="slide">
|
||
|
<h2>too much abstraction?</h2>
|
||
|
<p>More general <span class="and">&</span> more precise</p>
|
||
|
</section>
|
||
|
|
||
|
<section class="slide">
|
||
|
<h2>Animation, Math & Code</h2>
|
||
|
<p>Some math \(\sum_{i=1}^\infty \frac{1}{2^x} = 1 \)</p>
|
||
|
<p class="slide">Another <b>math</b> <em>formula</em> $$\sum_{i=1}^\infty \frac{1}{2^x} = 1$$</p>
|
||
|
<pre class="slide"><code class="haskell">import Control.Monad
|
||
|
|
||
|
main :: IO()
|
||
|
main = do
|
||
|
putStrLn $ "Hello !"
|
||
|
</code></pre>
|
||
|
</section>
|
||
|
|
||
|
<!-- End slides. -->
|
||
|
|
||
|
|
||
|
<!-- Begin extension snippets. Add or remove as needed. -->
|
||
|
|
||
|
<!-- deck.navigation snippet -->
|
||
|
<a href="#" class="deck-prev-link" title="Previous">←</a>
|
||
|
<a href="#" class="deck-next-link" title="Next">→</a>
|
||
|
|
||
|
<!-- deck.status snippet -->
|
||
|
<p class="deck-status">
|
||
|
<span class="deck-status-current"></span>
|
||
|
/
|
||
|
<span class="deck-status-total"></span>
|
||
|
</p>
|
||
|
|
||
|
<!-- deck.goto snippet -->
|
||
|
<form action="." method="get" class="goto-form">
|
||
|
<label for="goto-slide">Go to slide:</label>
|
||
|
<input type="text" name="slidenum" id="goto-slide" list="goto-datalist">
|
||
|
<datalist id="goto-datalist"></datalist>
|
||
|
<input type="submit" value="Go">
|
||
|
</form>
|
||
|
|
||
|
<!-- deck.hash snippet -->
|
||
|
<a href="." title="Permalink to this slide" class="deck-permalink">#</a>
|
||
|
|
||
|
<!-- End extension snippets. -->
|
||
|
|
||
|
|
||
|
<!-- Required JS files. -->
|
||
|
<script src="jquery-1.7.2.min.js"></script>
|
||
|
<script src="core/deck.core.js"></script>
|
||
|
|
||
|
<!-- Extension JS files. Add or remove as needed. -->
|
||
|
<script src="core/deck.core.js"></script>
|
||
|
<script src="extensions/hash/deck.hash.js"></script>
|
||
|
<script src="extensions/menu/deck.menu.js"></script>
|
||
|
<script src="extensions/goto/deck.goto.js"></script>
|
||
|
<script src="extensions/status/deck.status.js"></script>
|
||
|
<script src="extensions/navigation/deck.navigation.js"></script>
|
||
|
<script src="extensions/scale/deck.scale.js"></script>
|
||
|
|
||
|
<!-- Initialize the deck. You can put this in an external file if desired. -->
|
||
|
<script>
|
||
|
$(function() {
|
||
|
$.deck('.slide');
|
||
|
});
|
||
|
</script>
|
||
|
<!-- Y theme -->
|
||
|
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||
|
<script src="js/highlight/highlight.pack.js"></script>
|
||
|
<script>
|
||
|
hljs.initHighlightingOnLoad();
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|