-
Notifications
You must be signed in to change notification settings - Fork 0
/
HR4.html
168 lines (149 loc) Β· 6.2 KB
/
HR4.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2022-12-07 Wed 11:39 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Haskell Road; Getting Started</title>
<meta name="generator" content="Org Mode" />
<link rel="stylesheet" href="./tufte.css" type="text/css">
</head>
<body>
<div id="content" class="content">
<h1 class="title">Haskell Road; Getting Started</h1>
<div class="header">
<link rel="stylesheet" href="hamb.css">
<link rel="stylesheet" href="tufte.css">
<img src="./images/heading6.png" style="padding: 0px 0px 22px 0px" alt="3-d graph" class="center">
<p>
<nav role="navigation">
<div id="menuToggle">
<!--
A fake / hidden checkbox is used as click reciever,
so you can use the :checked selector on it.
-->
<input type="checkbox" />
<!--
Some spans to act as a hamburger.
They are acting like a real hamburger,
not that McDonalds stuff.
-->
<span></span>
<span></span>
<span></span>
<!--
Too bad the menu has to be inside of the button
but hey, it's pure CSS magic.
-->
<ul id="menu">
<a href="index.html" target="_blank"><li>Home</li></a>
<a href="blog.html" target="_blank"><li>Blog</li></a>
<a href="preface.html" target="_blank"><li>Preface</li></a>
<a href="preliminaries.html" target="_blank"><li>Rabbit Holes</li></a>
<li>Numbers</li>
<ul>
<a href="numbers1.html" target="_blank"><li>Numbers 1</li></a>
<a href="numbers2.html" target="_blank"><li>Numbers 2</li></a>
</ul>
</ul>
</div>
</nav>
</div>
</p>
<div id="outline-container-org0366df2" class="outline-2">
<h2 id="org0366df2">Getting started</h2>
</div>
<div id="outline-container-org8670731" class="outline-2">
<h2 id="org8670731">Monday at the library</h2>
<div class="outline-text-2" id="text-org8670731">
<p>
It’s a Monday morning in late July and the von der Surwitz siblings
meet in a reserved study room at the main university library to go
over what their <i>Introduction to Computer Science</i> teacher, Professor
Chandra, had discussed with them at Novalis Tech Open House.
</p>
<p>
Checking Professor Chandra’s course syllabus on her website, they had
already made online purchases of the two main texts for the course,
<i>The Haskell Road to Logic, Maths and Programming</i> by Kees Doets and
Jan van Eijck, and <i>Thinking as Computation</i> from Hector
Levesque. During the open house at the convention wing of the student
center, they sat around a table with the professor as she paged
through the texts and talked extemporaneously about what parts she
would handle and how. She also showed them some code on her laptop.
</p>
<p>
The professor encouraged them to dive into to the logic and sets
prereqs, along side of the first few chapters of <i>The Haskell
Road…</i>, as well as to get through as much <i>Learn You a Haskell…</i>
as possible.
</p>
<p>
Ursula von der Surwitz has plugged in her laptop to the big monitor
and is scrolling through some of her personal notes.
</p>
<p>
<span class="fraktur">ππ―π°π²π©π:</span> So like
Professor Chandra said yesterday, we’re going to do things in terms of
logic and set theory from here on out. <br />
[murmurs of agreement] <br />
<span class="fraktur">ππ΄π’:</span> And like she said,
with set theory we can properly define relations and function. All of
which sounds rather ominous. Like everything we thought we knew was
about to go away.<br />
[more agreement murmurs] <br />
<span class="fraktur">ππ―π°π²π©π:</span> [paging through
<i>Haskell Road…</i> ] Did anyone look at the first chapter? <br />
[all nod affirmative] <br />
<span class="fraktur">ππ―π°π²π©π:</span> [continuing]
Wasn’t too bad. But I needed some of the <i>Learn You a Haskell…</i> to
get me through. <br />
[murmurs of agreement] <br />
<span class="fraktur">ππ±π’:</span> I think it’s cool
how the whole prime number test, the greatest common divisor all
blended together. <br />
<span class="fraktur">ππ΄π’:</span> Do you remember
that prime factorization way of figuring out unlike-denominator math?
<br />
[affirmative murmurs] <br />
<span class="fraktur">ππ±π’:</span> That was amazing
how Professor Chandra just put two fractions with huge unlike
denominators into this command line — what was it she was using? <br />
<span class="fraktur">ππ΄π’:</span> It started with an
R<label for="1" class="margin-toggle sidenote-number"></label><input type="checkbox" id="1" class="margin-toggle"/><span class="sidenote">
That would be the programming language Racket where you can
simply put in, e.g., <br />
<code>> (+ 1/3234 1/9437200)</code> <br />
and get back <br />
<code>4720217/15259952400</code> <br />
Haskell can do this as well, which we’ll investigate.
</span>? <br />
</p>
<p>
<span class="fraktur">ππ±π’:</span> [continuing]
Right, so he added these monster unlike denominator fractions — and
it just spit out the answer in a split second <i>in rational form</i>! <br />
<span class="fraktur">ππ―π°π²π©π:</span> Then he worked
through an <i>algorithm</i> as to how it could have been done. <br />
<span class="fraktur">ππ΄π’:</span> Using prime
factorization. Yeah, impressive.
</p>
<p>
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank"><img src="./images/by-nc-sa.png" width="125px" style="padding: 100px 0px 0px 0px" alt="License-disense"</a>
</p>
</div>
</div>
<!-- Footnotes --><!--
<div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1" role="doc-backlink">1</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara">
That would be the programming language Racket where you can
simply put in, e.g., <br />
<code>> (+ 1/3234 1/9437200)</code> <br />
and get back <br />
<code>4720217/15259952400</code> <br />
Haskell can do this as well, which we’ll investigate.
</p></div></div>
--></div>
</body>
</html>