From 199d99a994e1801b4ef884bda4cce38470ef6fa1 Mon Sep 17 00:00:00 2001
From: Jim
Date: Sun, 1 Feb 2015 13:03:37 -0500
Subject: [PATCH] add summary to week1
---
topics/week1.mdwn | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/topics/week1.mdwn b/topics/week1.mdwn
index f195b8d9..430cc5dd 100644
--- a/topics/week1.mdwn
+++ b/topics/week1.mdwn
@@ -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`.
+
--
2.11.0