Merge branch 'pryor'
authorJim Pryor <profjim@jimpryor.net>
Sun, 3 Oct 2010 01:47:44 +0000 (21:47 -0400)
committerJim Pryor <profjim@jimpryor.net>
Sun, 3 Oct 2010 01:47:44 +0000 (21:47 -0400)
index.mdwn
lambda_library.mdwn [moved from arithmetic.mdwn with 91% similarity]

index d0d77f7..c18172b 100644 (file)
@@ -10,19 +10,23 @@ This course will be co-taught by [Chris Barker](http://homepages.nyu.edu/~cb125/
 The seminar meets on Mondays from 4-6, in 
 the Linguistics building at 10 Washington Place, in room 104 (back of the first floor).
 
-Student sessions will be held on Tuesdays from 11-12 and Wednesdays from 3-4. (You only need attend one session.) You should see these sessions as opportunities to clear up lingering issues from material we've discussed, and help get a better footing for what we'll be doing the next week. It would be smart to make a serious start on that week's homework, for instance, before the session.
+One student session will be held every Wednesday from 3-4. The other will be arranged to fit the schedule of those who'd like to attend but can't make the Wednesday time. (We first proposed Tuesdays from 11-12, but this time turns out not to be so helpful.) If you're one of the students who wants to meet for Q&A at some other time in the week, let us know.
 
-We've sent around an email to those who left their email addresses on the roster we passed around. But it's clear that the roster didn't make its way to everyone. So if you're not receiving our seminar emails, please email <mailto:jim.pryor@nyu.edu> with your email address, and if you're a student, say whether you expect to audit or take the class for credit.
+You should see the student sessions as opportunities to clear up lingering issues from material we've discussed, and help get a better footing for what we'll be doing the next week. It would be smart to make a serious start on that week's homework, for instance, before the session.
 
 There is now a [[lambda evaluator]] you can use in your browser (no need to install any software).
 It can help you check whether your answer to some of the homework questions works correctly.
 
+There is now a [library](/lambda_library) of lambda-calculus arithmetical and list operations, some relatively advanced.
+
 <!--
   To play around with a **typed lambda calculus**, which we'll look at later
   in the course, have a look at the [Penn Lambda Calculator](http://www.ling.upenn.edu/lambda/).
   This requires installing Java, but provides a number of tools for evaluating
   lambda expressions and other linguistic forms. (Mac users will most likely
   already have Java installed.)
+
+We've sent around an email to those who left their email addresses on the roster we passed around. But it's clear that the roster didn't make its way to everyone. So if you're not receiving our seminar emails, please email <mailto:jim.pryor@nyu.edu> with your email address, and if you're a student, say whether you expect to audit or take the class for credit.
 -->
 
 
@@ -36,10 +40,12 @@ Topics: Applications; Basics of Lambda Calculus; Comparing Different Languages
 
 Topics: Reduction and Convertibility; Combinators; Evaluation Strategies and Normalization; Decidability; Lists and Numbers
 
-(27 Sept) Lecture notesfor [[Week3]];  [[Assignment3]].
+(27 Sept) Lecture notes for [[Week3]];  [[Assignment3]].
 
 Topics: Recursion with Fixed Point Combinators
 
+(4 Oct) Lecture notes for Week 4
+
 <!-- Introducing the notion of a "continuation", which technique we'll now already have used a few times
 -->
 
similarity index 91%
rename from arithmetic.mdwn
rename to lambda_library.mdwn
index fafecaf..289b284 100644 (file)
@@ -1,5 +1,17 @@
 Here are a bunch of pre-tested operations for the untyped lambda calculus. In some cases multiple versions are offered.
 
+Some of these are drawn from:
+
+*      [[!wikipedia Lambda calculus]]
+*      [[!wikipedia Church encoding]]
+*      Oleg's [Basic Lambda Calculus Terms](http://okmij.org/ftp/Computation/lambda-calc.html#basic)
+
+and all sorts of other places. Others of them are our own handiwork.
+
+
+**Spoilers!** Below you'll find implementations of map and filter for v3 lists, and several implementations of leq for Church numerals. Those were all requested in Assignment 2; so if you haven't done that yet, you should try to figure them out on your own. (You can find implementations of these all over the internet, if you look for them, so these are no great secret. In fact, we'll be delighted if you're interested enough in the problem to try to think through alternative implementations.)
+
+
        ; booleans
        let true = \y n. y  in ; aka K
        let false = \y n. n  in ; aka K I
@@ -228,6 +240,10 @@ Here are a bunch of pre-tested operations for the untyped lambda calculus. In so
        let length = Y (\self lst. isempty lst 0 (succ (self (tail lst))))  in
 
 
+       true
+
+<!--
+
        ; numhelper 0 f z ~~> z
        ; when n > 0: numhelper n f z ~~> f (pred n)
        ; compare Bunder/Urbanek pred
@@ -239,7 +255,7 @@ Here are a bunch of pre-tested operations for the untyped lambda calculus. In so
 
 
        fact Theta 3  ; returns 6
-
+-->
 
 <!--
        ; my original efficient comparisons
@@ -276,6 +292,7 @@ Here are a bunch of pre-tested operations for the untyped lambda calculus. In so
 
                negate_int = \int. sign_case int (church_to_negint (abs int)) zero (church_to_int (abs int))
 
-       for more, see http://okmij.org/ftp/Computation/lambda-arithm-neg.scm
+       for more, see http://okmij.org/ftp/Computation/lambda-calc.html#neg
+
 
 -->