3 <link rel=
"stylesheet" href=
"https://csshake.surge.sh/csshake.min.css">
4 <link href=
"https://fonts.googleapis.com/css?family=Press+Start+2P&display=swap" rel=
"stylesheet">
6 href=
"//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/default.min.css">
7 <script src=
"//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script>
8 <script>hljs.initHighlightingOnLoad();
</script>
9 <title>Crazy Wide-Eyed Functional Programming
</title>
13 font-family: 'Press Start
2P', cursive;
17 background-color: #f98012;
18 background-image: url(
"img/tile.png");
19 background-repeat: repeat;
21 image-rendering: crisp-edges;
22 background-position-x: -
33px;
23 background-blend-mode: multiply;
27 font-family: 'Press Start
2P', cursive;
28 text-shadow:
2px
2px
0 #
000;
36 text-shadow:
10px
10px
0 #
00000069;
42 justify-content: center;
46 box-shadow:
10px
10px
0 #
00000069;
50 background-image: url(
"img/tile-nopad-bottom.png");
51 background-blend-mode: multiply;
53 background-repeat: repeat-x;
54 background-position-x: center;
55 background-position-y: center;
64 image-rendering: optimizeSpeed; /* STOP SMOOTHING, GIVE ME SPEED */
65 image-rendering: -moz-crisp-edges; /* Firefox */
66 image-rendering: -o-crisp-edges; /* Opera */
67 image-rendering: -webkit-optimize-contrast; /* Chrome (and eventually Safari) */
68 image-rendering: pixelated; /* Chrome */
69 image-rendering: optimize-contrast; /* CSS3 Proposed */
70 -ms-interpolation-mode: nearest-neighbor; /* IE8+ */
73 #slide-
1 .shake-constant, .crazy, .span {
74 display: inline-block;
77 #slide-
1 .shake-opacity {
87 box-shadow:
10px
10px
0 #
00000069;
88 border:
2px solid black;
89 background-color: #
3f6382;
99 <div class=
"slide-title">=<< What's up with that Title?
>>=
</div>
101 <div style=
"justify-content: right;">
102 <img class=
"shake-constant shake" src=
"img/wide-eyed-crazy.png" style=
"width: 70%; margin-right: 10%;">
104 <div style=
"justify-content: left">
105 <div style=
"display: flex; align-items: center; width: 70%">
106 <div id=
"rant" class=
"textbox" style=
"display: block;height: auto; width:100%; margin-left:10%;">
107 <span class=
"crazy">It’s functions,
</span><span class=
"shake-constant shake-opacity">pure
</span><span class=
"crazy"> functions! Pure functions and their values, PURE FUNCTIONS FOREVER AND FOREVER AND FOREVER A HUNDRED YEARS
</span><span class=
"shake-constant shake-opacity">monad
</span><span class=
"crazy">... some... things... Me and
</span><span class=
"shake-constant shake-opacity">monads
</span><span class=
"crazy"> runnin' around and...
</span><span class=
"shake-constant shake-opacity">applicative functor
</span><span class=
"crazy"> time... a- all day long forever... All a - a hundred days
</span><span class=
"shake-constant shake-opacity">applicatives
</span><span class=
"crazy"> and
</span><span class=
"shake-constant shake-opacity">functors
</span><span class=
"crazy">! Forever a hundred times.... OVER and over
</span><span class=
"shake-constant shake-opacity">monad transformers
</span><span class=
"crazy">... adventures dot com... W W W dot at
</span><span class=
"shake-constant shake-opacity">lambda calculus
</span><span class=
"crazy"> and
</span><span class=
"shake-constant shake-opacity">category theory
</span><span class=
"crazy"> dot com w..w..w... function composition adventures... Ah- hundred years… Every minute
</span><span class=
"shake-constant shake-opacity">referential… transparency
</span><span class=
"crazy"> dot com.... w w w a hundred times...
</span><span class=
"shake-constant shake-opacity">composition
</span><span class=
"crazy"> dot com...
</span>
111 <div>Fig
1.1 What most people thing a typical functional programming advocate looks like
</div>
115 <div class=
"slide-title">=<< Obligatory Quote
>>=
</div>
120 <div class=
"slide-title">=<< Obligatory Quote
>>=
</div>
122 <div style=
"text-align:center; font-size:40px; text-shadow: 4px 4px #000;" >If you wish to build a ship, do not divide the men into teams and send them to the forest to cut wood. Instead, teach them to long for the vast and endless sea.
</div>
126 <div class=
"slide-title">=<< The Third Slide
>>=
</div>
128 <pre><code class=
"haskell textbox">Left
"Hello" >>= \x -
> Right
"ah shit"</code></pre>
134 var div, i, j, span, duration =
"";
137 div = document.querySelectorAll(
"#rant > span.crazy");
138 for (j =
0; j < div.length; j++) {
140 for (i =
0; i < div[j].innerText.length; i++) {
141 duration = Math.floor(Math.random() *
5) +
100
142 span +=
"<span class=\"letter shake-constant shake-little\" style=\"animation-duration: " + duration +
"ms\">";
143 span += div[j].innerText[i] ==
" " ?
" " : div[j].innerText[i];
146 crazyTexts.push(span);
149 opacities = document.querySelectorAll(
"#rant > span.shake-opacity");
150 for (k =
0; k < opacities.length; k++) {
152 opacities[k].style.animationDuration = shrek + 's';
153 opacyTexts.push(opacities[k].outerHTML);
157 for (l =
0; l< crazyTexts.length; l++) {
158 allText+=crazyTexts[l] +
" " + (opacyTexts[l] ? opacyTexts[l] :
"") +
" ";
161 document.getElementById('rant').innerHTML = allText;
165 var b = document.querySelectorAll('body')[
0];
166 setInterval(function(){
169 b.style.backgroundPosition = x + 'px ' + y + 'px';
172 var currentSlide =
0;
173 document.onkeydown = checkKey;
175 function checkKey(e) {
177 e = e || window.event;
178 if (e.keyCode == '
37') {
179 if (document.getElementById('slide-' + currentSlide)) {
180 document.getElementById('slide-' + currentSlide).style.display = 'none';
183 document.getElementById('slide-' + currentSlide).style.display = 'block';
185 else if (e.keyCode == '
39') {
186 if (document.getElementById('slide-' + currentSlide)) {
187 document.getElementById('slide-' + currentSlide).style.display = 'none';
190 document.getElementById('slide-' + currentSlide).style.display = 'block';