X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=notes_and_schedule.mdwn;h=75f1e1aafd6acbb8c4106bf28288f4ed4e72217d;hp=50a9c33bb1c7b883e9809413e16a5646a0f6bd28;hb=a6091ff85a6b7d595e04dfe698a81394b4beac85;hpb=8f9f0e341d33c538d35919beada890f28aa5aa7c diff --git a/notes_and_schedule.mdwn b/notes_and_schedule.mdwn index 50a9c33b..75f1e1aa 100644 --- a/notes_and_schedule.mdwn +++ b/notes_and_schedule.mdwn @@ -1,36 +1,17 @@ -This is very sketchy at this point, but it should give a sense of our intended scope. +# Lecture Notes # + +[[Week1]] (13 Sept) Applications; Basics of Lambda Calculus; Comparing Different Languages + +Week2 (20 Sept) Reduction and Convertibility; Combinators; Evaluation Strategies and Normalization; Decidability; Lists and Numbers + +Week3 (27 Sept) Recursion with Fixed Point Combinators +Introducing the notion of a "continuation", which technique we'll now already have used a few times -## Introduction ## - -1. Declarative vs imperatival models of computation. -2. Variety of ways in which "order can matter." -3. Variety of meanings for "dynamic." -4. Schoenfinkel, Curry, Church: a brief history -5. Functions as "first-class values" -6. "Curried" functions - -## The "pure" or untyped lambda calculus ## - -1. Beta reduction -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 + +# Still To Come # + +This is very sketchy at this point, but it should give a sense of our intended scope. ## Types ##