(no commit message)
[lambda.git] / week9.mdwn
1 [[!toc]]
2
3 The seminar is now going to begin talking about more **imperatival** or **effect**-like elements in programming languages. The only effect-like element we've encountered so far is the possibility of divergence, in languages that permit fixed point combinators and so have the full power of recursion. What it means for something to be effect-like, and why this counts as an example of such, will emerge.
4
5 Other effect-like elements in a language include: printing (recall the [[damn]] example at the start of term), continuations (also foreshadowed in the [[damn]] example) and exceptions, and **mutation**. We'll focus on this last notion this week.
6
7 What is mutation? It's helpful to build up to this in a series of fragments...
8
9
10 Different grades of mutation involvement...
11
12
13 loops instead of recursion
14
15 before, order never mattered except to avoid divergence. Also, we've give up "referential transparency".
16
17