X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=zipper-lists-continuations.mdwn;h=bfd144c1ede17257d7847957abf1fded70590127;hp=1b571f616bd9a250e669ecfe1f6b35138a6d373b;hb=aeec785e1d00c613973b4912d4b0f510954491ec;hpb=3d53131298c479c56d95be8c6d2b62127cac087d diff --git a/zipper-lists-continuations.mdwn b/zipper-lists-continuations.mdwn index 1b571f61..bfd144c1 100644 --- a/zipper-lists-continuations.mdwn +++ b/zipper-lists-continuations.mdwn @@ -5,7 +5,7 @@ continuation monad. The three approches are: -[[toc]] +[[!toc]] Rethinking the list monad ------------------------- @@ -228,10 +228,12 @@ Sigh. Ocaml won't show us our own list. So we have to choose an `f` and a `z` that will turn our hand-crafted lists into standard Ocaml lists, so that they will print out. +
 # let cons h t = h :: t;;  (* Ocaml is stupid about :: *)
 # l'_bind (fun f z -> f 1 (f 2 z)) 
           (fun i -> fun f z -> f i (f (i+1) z)) cons [];;
 - : int list = [1; 2; 2; 3]
+
Ta da! @@ -302,3 +304,6 @@ versa. The connections will be expecially relevant when we consider indefinites and Hamblin semantics on the linguistic side, and non-determinism on the list monad side. +Refunctionalizing zippers +------------------------- +