4994bca11c877ccaca4219aa2c5355724fa15d3b
[lambda.git] / offsite_reading.mdwn
1 Many off these links are to Wikipedia. You can learn a lot from such articles,
2 so long as you remember they may sometimes mislead or make mistakes. However, I
3 hope at this point in your education you'll have learned to be a guarded reader
4 even of authoritative treatises by eminent authors. So you shouldn't need any
5 Wikipedia-specific warnings.
6
7 ## General issues about variables and binding in programming languages ##
8
9 [[!wikipedia Variable (programming)]]
10 [[!wikipedia Variable shadowing]]
11 [[!wikipedia Scope (programming)]]
12 [[!wikipedia Free variables and bound variables]]
13 [[!wikipedia Name binding]]
14 [[!wikipedia Name resolution]]
15 [[!wikipedia Parameter (computer science)]]
16
17 ## Functions as values, etc ##
18
19 [[!wikipedia Higher-order function]]
20 [[!wikipedia First-class function]]
21 [[!wikipedia Closure (computer science)]]
22 [[!wikipedia Currying]]
23 [[!wikipedia Recursion (computer science)]]
24
25 ## Functional vs imperative programming ##
26
27 [[!wikipedia Declarative programming]]
28 [[!wikipedia Functional programming]]
29 [[!wikipedia Purely functional]]
30 [[!wikipedia Referential transparency (computer science)]]
31 [[!wikipedia Imperative programming]]
32
33 ## Scheme and OCaml ##
34
35 [[!wikipedia Scheme (programming language)]]
36 [[!wikipedia Objective Caml]]
37
38 ## Untyped lambda calculus and combinatory logic ##
39
40 [[!wikipedia Lambda calculus]]
41
42 [[!wikipedia Haskell Curry]]
43 [[!wikipedia Moses Schönfinkel]]
44 [[!wikipedia Alonzo Church]]
45
46 [[!wikipedia Combinatory logic]]
47 [[!wikipedia B,C,K,W system]]
48 [[!wikipedia SKI combinatory calculus]]
49
50 [[!wikipedia Church-Rosser theorem]]
51 [[!wikipedia Normalization property]]
52 [[!wikipedia Turing completeness]]
53
54 [[!wikipedia Church encoding]]
55 [[!wikipedia Y combinator]]
56
57 [[!wikipedia Curry-Howard isomorphism]]
58
59 [[!wikipedia Evaluation strategy]]
60 [[!wikipedia Eager evaluation]]
61 [[!wikipedia Lazy evaluation]]
62 [[!wikipedia Strict programming language]]
63
64 ## Types ##
65
66 [[!wikipedia Tagged union]]
67 [[!wikipedia Algebraic data type]]
68 [[!wikipedia Pattern matching]]
69 [[!wikipedia Unit type]]
70 [[!wikipedia Bottom type]]
71 [[!wikipedia Typed lambda calculus]]
72 [[!wikipedia Simply typed lambda calculus]]
73 [[!wikipedia Type polymorphism]]
74 [[!wikipedia System F]]
75
76 [[!wikipedia Side effect (computer science)]]
77 [[!wikipedia Reference (computer science)]]
78 [[!wikipedia Pointer (computing)]]
79
80 ## Continuations ##
81
82 [[!wikipedia Continuation]]
83 [[!wikipedia Continuation-passing style]]
84 [[!wikipedia Call-with-current-continuation]]
85 [[!wikipedia Delimited continuation]]
86
87 ## Monads ##
88
89 [[!wikipedia Monad (functional programming)]]
90
91 ## Linear Logic ##
92
93 [[!wikipedia Linear logic]]
94
95