post readings
[lambda.git] / exercises / assignment3_answers.mdwn
index 92da088..082cb77 100644 (file)
@@ -57,7 +57,7 @@
 
     > I'm not sure which of the two solutions presented here is better. The one given in the hint traverses the list only once; whereas the one gotten by reversing the list and getting the last member of the result traverses the list twice. But the former strategy does more complicated stuff at each step of the traversal (both conceptually and more applications), so in the end it might be computationally "cheaper" to use the latter strategy.
 
-    > Here is yet a third solution:
+    > Here is yet a third solution, which is probably the most efficient:
 
     >     let box = \a. \v. v a in 
     >     let left_head = \xs. xs (\b x. (K (b (K x)))) (box err) I in
     >     let pred = \n. n shift (pair 0 err) snd in
     >     ...
 
-    > Here is another solution, due to Martin Bunder and F. Urbanek:
+    > Here is another solution, that is attributed variously to Martin Bunder and F. Urbanek, or J. Velmans:
 
     >     let box = \a. \v. v a in
     >     let pred = \n. \s z. n (\b. box (b s)) (K z) I in