add summary to week1
[lambda.git] / topics / week1.mdwn
index f195b8d..430cc5d 100644 (file)
@@ -614,3 +614,28 @@ 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 hierarcy 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 literals `[]` and `{}`
+        *   Non-empty sequences
+        *   Non-empty sets
+        *   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
+*   Various complex expressions, built using `&` or λ 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`.
+