X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=exercises%2F_assignment4.mdwn;h=7df06052a7d951fd663438b1b9cfbc5181238bed;hp=0ff4b2c3130d20a7d11b91599be16299d65c3684;hb=6d3a727b8c6f647cad9ba617c2f2baf22659bd4a;hpb=1557d471b7e1c4c8723ab78f0fa6492f59554ba1 diff --git a/exercises/_assignment4.mdwn b/exercises/_assignment4.mdwn index 0ff4b2c3..7df06052 100644 --- a/exercises/_assignment4.mdwn +++ b/exercises/_assignment4.mdwn @@ -12,7 +12,7 @@ and prove that it is a fixed point. never gets around to noticing whether it has an argument, let alone doing anything with that argument. If so, how could Ω have a fixed point? That is, how could there be an `X` such that -Ω X <~~> &Omegea;(Ω X)? To answer this +Ω X <~~> Ω(Ω X)? To answer this question, begin by constructing . Prove that is a fixed point for Ω. @@ -29,18 +29,18 @@ The factorial `n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1`. For instance, `fac 0 ~~> 1`, `fac 1 ~~> 1`, `fac 2 ~~> 2`, `fac 3 ~~> 6`, and `fac 4 ~~> 24`. - let true = \then else. then in - let false = \then else. else in - let iszero = \n. n (\x. false) true in - let pred = \n f z. n (\u v. v (u f)) (K z) I in - let succ = \n f z. f (n f z) in - let add = \n m .n succ m in - let mult = \n m.n(add m)0 in - let Y = \h . (\f . h (f f)) (\f . h (f f)) in + let true = \then else. then in + let false = \then else. else in + let iszero = \n. n (\x. false) true in + let pred = \n f z. n (\u v. v (u f)) (K z) I in + let succ = \n f z. f (n f z) in + let add = \n m .n succ m in + let mult = \n m.n(add m)0 in + let Y = \h . (\f . h (f f)) (\f . h (f f)) in - let fac = ... in + let fac = ... in - fac 4 + fac 4 ## Arithmetic infinity? ##