X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=topics%2Fweek1.mdwn;h=70f330edd496e74acd12aa627303adb978276189;hp=f195b8d9216207fa5c83c29e0cab3013d667df87;hb=468239d70a8dc3c296931ee45721f9f7036b7f0b;hpb=441659b7ec458cc0b45a1da299f0466dc89f1266 diff --git a/topics/week1.mdwn b/topics/week1.mdwn index f195b8d9..70f330ed 100644 --- a/topics/week1.mdwn +++ b/topics/week1.mdwn @@ -614,3 +614,31 @@ You have all the materials you need now to do this week's [[assignment|assignmen There are also some [[advanced notes|week1 advanced notes]] extending this week's material. +### Summary ### + +Here is the hierarchy of **values** that we've talked about so far. + +* Multivalues +* Singular values, including: + * Atoms, including: + * Numbers: these are among the **literals** + * Symbolic atoms: these are also among the **literals**, and include: + * Booleans (or truth-values) + * Functions: these are not literals, but instead have to be generated by evaluating complex expressions + * Containers, including: + * the **literal containers** `[]` and `{}` + * Non-empty sequences, built using `&` + * Non-empty sets, built using `&` + * Tuples proper and other containers, to be introduced later + +We've also talked about a variety of **expressions** in our language, that evaluate down to various values (if their evaluation doesn't "crash" or otherwise go awry). These include: + +* All of the literal atoms and literal containers +* Variables +* Complex expressions that apply `&` or some variable understood to be bound to a function to some arguments +* Various other complex expressions involving λ or `let` or `letrec` or `case` + +The special syntaxes `[10, 20, 30]` are just shorthand for the more offical syntax using `&` and `[]`, and likewise for `{10, 20, 30}`. The `if ... then ... else ...` syntax is just shorthand for a `case`-construction using the literal patterns `'true` and `'false`. + +We also talked about **patterns**. These aren't themselves expressions, but form part of some larger expressions. +