X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=schedule_of_topics.mdwn;h=b784a9f371420332e97f5d1788a248ddf057345a;hp=52455c5ec94b4177cb8c4786d7d09b3e98f50597;hb=b6e49b6bb965279c0af74175c3462787ca0a55a6;hpb=1446bb7aa6ae004939ecad21ec44031c968955f0 diff --git a/schedule_of_topics.mdwn b/schedule_of_topics.mdwn index 52455c5e..b784a9f3 100644 --- a/schedule_of_topics.mdwn +++ b/schedule_of_topics.mdwn @@ -13,27 +13,24 @@ This is very sketchy at this point, but it should give a sense of our intended s ## The "pure" or untyped lambda calculus ## 1. Beta reduction -2. Substitution; using alpha-conversion and other strategies -3. Conversion versus reduction -4. Eta reduction and "extensionality" -5. Different evaluation strategies (call by name, call by value, etc.) -6. Strongly normalizing vs weakly normalizing vs non-normalizing; Church-Rosser Theorem(s) -6. Lambda calculus compared to combinatorial logic - -7. Encoding pairs (and triples and ...) -8. Encoding booleans -9. Church-like encodings of numbers, defining addition and multiplication -10. Defining the predecessor function; alternate encodings for the numbers -11. Homogeneous sequences or "lists"; how they differ from pairs, triples, etc. -12. Representing lists as pairs -13. Representing lists as folds -14. Typical higher-order functions: map, filter, fold - -15. Recursion exploiting the fold-like representation of numbers and lists ([deforestation](http://en.wikipedia.org/wiki/Deforestation_%28computer_science%29), [zippers](http://en.wikipedia.org/wiki/Zipper_%28data_structure%29)) -16. General recursion using omega -17. The Y combinator(s); more on evaluation strategies - -18. Introducing the notion of a "continuation", which technique we'll now already have used a few times +1. Substitution; using alpha-conversion and other strategies +1. Conversion versus reduction +1. Eta reduction and "extensionality" +1. Different evaluation strategies (call by name, call by value, etc.) +1. Strongly normalizing vs weakly normalizing vs non-normalizing; Church-Rosser Theorem(s) +1. Lambda calculus compared to combinatorial logic

+1. Encoding pairs (and triples and ...) +1. Encoding booleans +1. Church-like encodings of numbers, defining addition and multiplication +1. Defining the predecessor function; alternate encodings for the numbers +1. Homogeneous sequences or "lists"; how they differ from pairs, triples, etc. +1. Representing lists as pairs +1. Representing lists as folds +1. Typical higher-order functions: map, filter, fold

+1. Recursion exploiting the fold-like representation of numbers and lists ([[!wikipedia Deforestation (computer science)]], [[!wikipedia Zipper (data structure)]]) +1. General recursion using omega +1. The Y combinator(s); more on evaluation strategies

+1. Introducing the notion of a "continuation", which technique we'll now already have used a few times ## Types ##