summaryrefslogtreecommitdiff
path: root/public/post/2017-08-16-tapl/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'public/post/2017-08-16-tapl/index.html')
-rw-r--r--public/post/2017-08-16-tapl/index.html288
1 files changed, 183 insertions, 105 deletions
diff --git a/public/post/2017-08-16-tapl/index.html b/public/post/2017-08-16-tapl/index.html
index d0ce0d0..bf71d20 100644
--- a/public/post/2017-08-16-tapl/index.html
+++ b/public/post/2017-08-16-tapl/index.html
@@ -1,146 +1,224 @@
<!DOCTYPE html>
<html lang="en">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-
- <title>Types and Programming Languages | </title>
- <meta name="viewport" content="width=device-width,minimum-scale=1">
- <meta name="description" content="February 2016, as a birthday present to myself I bought a copy of Types and Programming Languages. At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself. To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.">
- <meta name="generator" content="Hugo 0.155.0">
-
-
-
- <meta name="robots" content="index, follow">
-
-
+<head>
+
+ <title>Types and Programming Languages :: </title>
+
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="description" content="February 2016, as a birthday present to myself I bought a copy of Types and Programming Languages. At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself. To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.
+" />
+<meta name="keywords" content="" />
-
-<link rel="stylesheet" href="/ananke/css/main.min.efe4d852f731d5d1fbb87718387202a97aafd768cdcdaed0662bbe6982e91824.css" >
+ <meta name="robots" content="noodp" />
+<link rel="canonical" href="https://blog.gluegadget.com/post/2017-08-16-tapl/" />
-
-
-
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/buttons.min.86f6b4c106b6c6eb690ae5203d36b442c1f66f718ff4e8164fa86cf6c61ad641.css">
-
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/code.min.d529ea4b2fb8d34328d7d31afc5466d5f7bc2f0bc9abdd98b69385335d7baee4.css">
-
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/fonts.min.5bb7ed13e1d00d8ff39ea84af26737007eb5051b157b86fc24487c94f3dc8bbe.css">
-
- <link rel="canonical" href="https://blog.gluegadget.com/post/2017-08-16-tapl/">
-
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/footer.min.eb8dfc2c6a7eafa36cd3ba92d63e69e849e2200e0002a228d137f236b09ecd75.css">
-
-
- <meta property="og:url" content="https://blog.gluegadget.com/post/2017-08-16-tapl/">
- <meta property="og:title" content="Types and Programming Languages">
- <meta property="og:description" content="February 2016, as a birthday present to myself I bought a copy of Types and Programming Languages. At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself. To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.">
- <meta property="og:locale" content="en">
- <meta property="og:type" content="article">
- <meta property="article:section" content="post">
- <meta property="article:published_time" content="2017-08-16T00:00:00+00:00">
- <meta property="article:modified_time" content="2017-08-16T00:00:00+00:00">
- <meta property="article:tag" content="Tapl">
- <meta property="article:tag" content="Rust">
-
- <meta itemprop="name" content="Types and Programming Languages">
- <meta itemprop="description" content="February 2016, as a birthday present to myself I bought a copy of Types and Programming Languages. At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself. To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.">
- <meta itemprop="datePublished" content="2017-08-16T00:00:00+00:00">
- <meta itemprop="dateModified" content="2017-08-16T00:00:00+00:00">
- <meta itemprop="wordCount" content="318">
- <meta itemprop="keywords" content="Tapl,Rust">
- <meta name="twitter:card" content="summary">
- <meta name="twitter:title" content="Types and Programming Languages">
- <meta name="twitter:description" content="February 2016, as a birthday present to myself I bought a copy of Types and Programming Languages. At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself. To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.">
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/gist.min.a751e8b0abe1ba8bc53ced52a38b19d8950fe78ca29454ea8c2595cf26aad5c0.css">
-
-
-
-
- </head><body class="ma0 avenir bg-near-white production is-page is-page page-2017-08-16-tapl">
-
-
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/header.min.75c7eb0e2872d95ff48109c6647d0223a38db52e2561dd87966eb5fc7c6bdac6.css">
- <header>
- <div class="bg-black">
- <nav class="pv3 ph3 ph4-ns" role="navigation">
- <div class="flex-l center items-center justify-between">
- <a href="/" class="f3 fw2 hover-white white-90 dib no-underline">
-
-
-
- </a>
- <div class="flex-l items-center">
-
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/main.min.36833afd348409fc6c3d09d0897c5833d9d5bf1ff31f5e60ea3ee42ce2b1268c.css">
-
- <div class="ananke-socials"></div>
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/menu.min.3c17467ebeb3d38663dce68f71f519901124fa5cbb4519b2fb0667a21e9aca39.css">
- </div>
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/pagination.min.bbb986dbce00a5ce5aca0504b7925fc1c581992a4bf57f163e5d69cc1db7d836.css">
+
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/post.min.e6dddd258e64c83e05cec0cd49c05216742d42fc8ecbfbe6b67083412b609bd3.css">
+
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/syntax.min.a0773cce9310cb6d8ed23e50f005448facf29a53001b57e038828daa466b25c0.css">
+
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/terminal.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css">
+
+
+ <link rel="stylesheet" href="https://blog.gluegadget.com/css/terms.min.b81791663c3790e738e571cdbf802312390d30e4b1d8dc9d814a5b5454d0ac11.css">
+
+
+
+
+
+
+
+<link rel="shortcut icon" href="https://blog.gluegadget.com/favicon.png">
+<link rel="apple-touch-icon" href="https://blog.gluegadget.com/apple-touch-icon.png">
+
+
+<meta name="twitter:card" content="summary" />
+
+
+
+<meta property="og:locale" content="en" />
+<meta property="og:type" content="article" />
+<meta property="og:title" content="Types and Programming Languages">
+<meta property="og:description" content="February 2016, as a birthday present to myself I bought a copy of Types and Programming Languages. At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself. To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.
+" />
+<meta property="og:url" content="https://blog.gluegadget.com/post/2017-08-16-tapl/" />
+<meta property="og:site_name" content="" />
+
+ <meta property="og:image" content="https://blog.gluegadget.com/og-image.png">
+
+<meta property="og:image:width" content="1200">
+<meta property="og:image:height" content="627">
+
+
+ <meta property="article:published_time" content="2017-08-16 00:00:00 &#43;0000 UTC" />
+
+
+
+
+
+
+
+
+
+<script>
+window.MathJax = {
+ tex: {
+ inlineMath: [['$', '$'], ['\\(', '\\)']],
+ displayMath: [['$$', '$$'], ['\\[', '\\]']],
+ processEscapes: true,
+ processEnvironments: true
+ },
+ options: {
+ skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre']
+ }
+};
+</script>
+<script id="MathJax-script" async src="/mathjax/tex-mml-chtml.js"></script>
+
+
+</head>
+<body>
+
+
+<div class="container center">
+
+ <header class="header">
+ <div class="header__inner">
+ <div class="header__logo">
+ <a href="https://blog.gluegadget.com/">
+ <div class="logo">
+ Terminal
</div>
-</nav>
+</a>
</div>
- </header>
+
+
+ </div>
+
+</header>
+ <div class="content">
+
+<article class="post">
+ <h1 class="post-title">
+ <a href="https://blog.gluegadget.com/post/2017-08-16-tapl/">Types and Programming Languages</a>
+ </h1>
+ <div class="post-meta"><time class="post-date">2017-08-16</time></div>
- <main class="pb7" role="main">
-
-
- <article class="page-2017-08-16-tapl flex-l mw7 center ph3 flex-wrap justify-between">
- <header class="mt4 w-100">
- <aside class="instapaper_ignoref b helvetica tracked ttu">
-
- Posts
- </aside><div id="sharing" class="mt3 ananke-socials"></div>
-<h1 class="f1 athelas mt3 mb1">Types and Programming Languages</h1>
+ <span class="post-tags">
+ #<a href="https://blog.gluegadget.com/tags/tapl/">tapl</a>&nbsp;
+ #<a href="https://blog.gluegadget.com/tags/rust/">rust</a>&nbsp;
- <time class="f6 mv4 dib tracked" datetime="2017-08-16T00:00:00Z">August 16, 2017</time>
-
+ </span>
+
+
-
-
- </header>
- <div class="nested-copy-line-height lh-copy serif f4 nested-links mid-gray pr4-l w-100-l"><p>February 2016, as a birthday present to myself I bought a copy of <a href="https://www.cis.upenn.edu/~bcpierce/tapl/">Types and Programming Languages</a>. At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself. To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.</p>
+
+
+
+ <div class="post-content"><div>
+ <p>February 2016, as a birthday present to myself I bought a copy of <a href="https://www.cis.upenn.edu/~bcpierce/tapl/">Types and Programming Languages</a>. At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself. To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.</p>
<p>First of all, I should say that I&rsquo;ve no academic background in computer science—I&rsquo;ve studied Zoology. I easily get frightened by any text with more than a few lines of maths in it especially when it&rsquo;s heavy on symbols which I don&rsquo;t know, and Google doesn&rsquo;t help. I&rsquo;ve had many attempts at learning maths—watching YouTube videos, reading books—but I always gave up mostly due to lack of discipline in doing the exercises. A year ago I decided to do something about it and enrolled into DIT&rsquo;s <a href="http://www.dt249.ie/">B.Sc. in Information Systems and Information Technology</a>. I thought if I&rsquo;m paying a substantial amount of money for a class in a relatively well-established institute it might help. To my unwelcome surprise, the course isn&rsquo;t heavy on maths, but it was an immense help, discipline-wise, nonetheless.</p>
<p>The second thing was that due to some unforeseen circumstances, all of a sudden I found myself with plenty of free time and I didn&rsquo;t want to waste this once in a lifetime opportunity.</p>
<p>After deciding that I want to read the book and be rigorous in doing the exercises, I had to choose a programming language to do the exercises in, and I found it a good excuse to give Rust a try.</p>
<p>I also decided to publish my progress both as in <a href="https://github.com/amir/tapl.rs">code</a> as well as in a series of blog posts, as suggested by a wise man, <a href="http://iainhull.github.io/">Iain</a>. Hence this blog.</p>
-<ul class="pa0">
+
+ </div></div>
+
+
+
+<div class="pagination">
+ <div class="pagination__title">
+ <span class="pagination__title-h"></span>
+ <hr />
+ </div>
+ <div class="pagination__buttons">
+
+ <a href="https://blog.gluegadget.com/post/2017-08-22-thinkpad-e470/" class="button inline prev">
+ &lt; [<span class="button__text">ThinkPad E470</span>]
+ </a>
+
+
+
+ </div>
+</div>
+
+
- <li class="list di">
- <a href="/tags/tapl/" class="link f5 grow br-pill ba ph3 pv2 mb2 dib black sans-serif no-underline">Tapl</a>
- </li>
+
- <li class="list di">
- <a href="/tags/rust/" class="link f5 grow br-pill ba ph3 pv2 mb2 dib black sans-serif no-underline">Rust</a>
- </li>
+
+
-</ul>
+</article>
-
- </div></article>
-
- </main>
- <footer class="bg-black bottom-0 w-100 pa3" role="contentinfo">
- <div class="flex justify-between">
- <a class="f4 fw4 hover-white white-70 dn dib-ns pv2 ph3 no-underline" href="https://blog.gluegadget.com/" >
- &copy;
- </a>
- <div><div class="ananke-socials"></div>
-</div>
+ </div>
+
+
+ <footer class="footer">
+ <div class="footer__inner">
+
+ <div class="copyright">
+ <span>© 2026 Powered by <a href="https://gohugo.io">Hugo</a></span>
+
+ <span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
+ </div>
</div>
</footer>
- </body>
+
+
+
+
+
+<script type="text/javascript" src="/bundle.min.js"></script>
+
+
+
+
+
+
+</div>
+
+</body>
</html>