File tree 4 files changed +162
-1
lines changed
4 files changed +162
-1
lines changed Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ Features:
24
24
- Supports [ evaluating code snippets and showing the result] ( #evaluating-code ) .
25
25
- Written in [ Haskell] .
26
26
27
- ![ screenshot] ( extra/screenshot.png ?raw=true )
27
+ ![ screenshot] ( extra/demo.gif ?raw=true )
28
28
29
29
[ Kate ] : https://kate-editor.org/
30
30
[ Haskell ] : http://haskell.org/
Original file line number Diff line number Diff line change
1
+ ---
2
+ title : ' Logic Programming in Haskell'
3
+ author : ' Jasper Van der Jeugt'
4
+ patat :
5
+ incrementalLists : true
6
+ wrap : true
7
+ margins :
8
+ left : 1
9
+ right : 1
10
+ eval :
11
+ ghci :
12
+ command : ' tr -d "\n" | ghci | tail -n2 | head -n1'
13
+ ...
14
+
15
+ # Filler
16
+
17
+ # # Filler
18
+
19
+ # # Filler
20
+
21
+ # # Filler
22
+
23
+ # # Filler
24
+
25
+ # List Comprehensions
26
+
27
+ # # Introduction
28
+
29
+ If we want to keep things simple, **list comprehensions** can be a powerful
30
+ tool.
31
+
32
+ ~~~~~{.haskell}
33
+ evens = [x | x <- [1..10], x `mod` 2 == 0]
34
+ ~~~~~
35
+
36
+ Statements in list comprehensions are usually either :
37
+
38
+ - _Pattern matches_ using `<-`
39
+ - Expressions of type `Bool`
40
+
41
+ . . .
42
+
43
+ You can also `let` to introduce new bindings, but this is less common.
44
+
45
+ # # Laziness
46
+
47
+ Due to Haskell's _laziness_, we don't traverse the whole search space.
48
+ Searching for _triangular numbers_ :
49
+
50
+ ~~~~~{.haskell .ghci}
51
+ take 3 $
52
+ [ (a, b, c)
53
+ | c <- [1 .. 100000]
54
+ , b <- [1 .. c], a <- [1 .. b]
55
+ , a * a + b * b == c * c
56
+ ]
57
+ ~~~~~
58
+
59
+ # # Laziness
60
+
61
+ Yo!
62
+
63
+ # Filler
64
+
65
+ # # Filler
66
+
67
+ Filler
68
+
69
+ # # Filler
70
+
71
+ Filler
72
+
73
+ # # Filler
74
+
75
+ Filler
76
+
77
+ # # Filler
78
+
79
+ # # Filler
80
+
81
+ # # Filler
82
+
83
+ # # Filler
84
+
85
+ # # Filler
86
+
87
+ # # Filler
88
+
89
+ # # Filler
90
+
91
+ # # Filler
92
+
93
+ # # Filler
94
+
95
+ # # Filler
96
+
97
+ # # Filler
98
+
99
+ # # Filler
100
+
101
+ # # Filler
102
+
103
+ # # Filler
104
+
105
+ # # Filler
106
+
107
+ # # Filler
108
+
109
+ # # Filler
110
+
111
+ # # Filler
112
+
113
+ # # Filler
114
+
115
+ # # Filler
116
+
117
+ # # Filler
118
+
119
+ # # Filler
120
+
121
+ # # Filler
122
+
123
+ # # Filler
124
+
125
+ # # Filler
126
+
127
+ # # Filler
128
+
129
+ # # Filler
130
+
131
+ # # Filler
132
+
133
+ # # Filler
134
+
135
+ # # Filler
136
+
137
+ # # Filler
138
+
139
+ # # Filler
140
+
141
+ # # Filler
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+ set -o nounset -o errexit -o pipefail
3
+
4
+ mkdir -p cropped
5
+ rm -f cropped/*
6
+ for i in inputs/* ; do
7
+ convert \
8
+ -alpha remove \
9
+ -crop ' 1280x1000+122+138' " $i " " cropped/$( basename " $i " ) "
10
+ done
11
+
12
+ rm -f patat.gif
13
+ convert \
14
+ -repage ' 0x0' \
15
+ -layers coalesce \
16
+ -layers optimize-plus \
17
+ +repage \
18
+ -delay 150x100 \
19
+ -loop 0 \
20
+ cropped/* .png patat.gif
You can’t perform that action at this time.
0 commit comments