X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=arithmetic.mdwn;h=bc15ae8de777a3ad40fe126cbe7500f02edd4890;hp=cac56f206cb497b9acb87272a4e363a0a9c841bd;hb=cbb48495bd8cd6cdcbebd1bcd8c3051148c8b0a6;hpb=e24b3eb555211cb2d9af17355b305313ba0eaf7a diff --git a/arithmetic.mdwn b/arithmetic.mdwn index cac56f20..bc15ae8d 100644 --- a/arithmetic.mdwn +++ b/arithmetic.mdwn @@ -44,6 +44,7 @@ Here are a bunch of pre-tested operations for the untyped lambda calculus. In so let map = \f lst. lst (\h sofar. make_list (f h) sofar) empty in let filter = \f lst. lst (\h sofar. f h (make_list h sofar) sofar) empty in ; or let filter = \f lst. lst (\h. f h (make_list h) I) empty in + let reverse = \lst. lst (\h t. t make_list (\f n. f h n)) empty in ; version 1 lists @@ -201,7 +202,7 @@ Here are a bunch of pre-tested operations for the untyped lambda calculus. In so ; Rosenbloom's fixed point combinator let Y = \f. (\h. f (h h)) (\h. f (h h)) in ; Turing's fixed point combinator - let Z = (\u f. f (u u f)) (\u f. f (u u f)) in + let Theta = (\u f. f (u u f)) (\u f. f (u u f)) in ; length for version 1 lists @@ -218,7 +219,7 @@ Here are a bunch of pre-tested operations for the untyped lambda calculus. In so - fact Z 3 ; returns 6 + fact Theta 3 ; returns 6