A | B | C | D | |
---|---|---|---|---|
1 | Author | URL | Comments | |
2 | [A different ebook every day for free] | Packt publishing | https://betterinformatics.com/ | |
3 | How to Design Programs, Second Edition | Matthias Felleisen, et al. | http://www.ccs.neu.edu/home/matthias/HtDP2e/ | |
4 | Game Engine Architecture | Jason Gregory | https://drive.google.com/drive/folders/0B5l6r6W7xAx-Q1o1ZFl0MzB1S1U?usp=sharing | |
5 | Hacker's Delight | Henry S. Warren, Jr. | https://drive.google.com/drive/folders/0B5l6r6W7xAx-Q1o1ZFl0MzB1S1U?usp=sharing | |
6 | Haskell Programming from First Principles | C. Allen & J. Moronuki | https://drive.google.com/drive/folders/0B5l6r6W7xAx-Q1o1ZFl0MzB1S1U?usp=sharing | |
7 | Learn You a Haskell For Great Good | Miran Lipovača | http://learnyouahaskell.com/chapters | it's the suggested reading for inf1-fp |
8 | Learn You Some Erlang For Great Good | Fred Hébert | http://learnyousomeerlang.com/content | For Jammy <3 |
9 | Quantum Computing With Cats | John Gribbin | https://www.amazon.co.uk/Computing-Quantum-Cats-Colossus-Qubits/dp/1616149213 | Our past and where we are headed |
10 | Awesome Lists | https://github.com/sindresorhus/awesome | Less of a book, more of a fantastic resource | |
11 | The Art of Intrusion | Kevin D. Mitnick | ||
12 | Algorithms to live by: the computer science of human decisions | Brian Christian and Tom Griffiths | ||
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 | module Books where | |||
40 | import System.Random | |||
41 | ||||
42 | type Book = String | |||
43 | theBooks :: [ Book ] | https://gist.github.com/anonymous/1f754152b093a118a00283c4ff99d3cd | ||
44 | theBooks = [ "How to Design Programs", | |||
45 | "Game Engine Architecture", | |||
46 | "Hacker's Delight", | -- I now know this is Haskell | ||
47 | "Haskell Programming from FP", | |||
48 | "LYAH" ] | |||
49 | ||||
50 | chooseBook :: Int -> Book | |||
51 | chooseBook x = theBooks !! ( mod x $ length theBooks ) | |||
52 | ||||
53 | main :: IO () | -- there is a RandomIO typeclass that makes this neater | ||
54 | main = do | -- if you're bored: rewrite this except better :) | ||
55 | n <- randomIO :: IO Int | |||
56 | print $ chooseBook n | |||
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 |