From 113625cac7cb6fe962092be8fb92770dc90756f3 Mon Sep 17 00:00:00 2001 From: Jim Pryor Date: Sat, 18 Sep 2010 17:42:26 -0400 Subject: [PATCH] tweaked week3 Signed-off-by: Jim Pryor --- week3.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/week3.mdwn b/week3.mdwn index f5f075a1..29a058c0 100644 --- a/week3.mdwn +++ b/week3.mdwn @@ -24,7 +24,7 @@ Some comments on this: 2. `cdr` is function that gets the tail of a Scheme list. (By definition, it's the function for getting the second member of an ordered pair. It just turns out to return the tail of a list because of the particular way Scheme implements lists.) -What is the `let rec` in the OCaml code and the `letrec` in the Scheme code? These work like the `let` expressions we've already seen, except that they let you use the variable `get_length` *inside* the body of the function being bound to it---with the understanding that it will there refer to the same function that you're then in the process of binding to `get_length`. In OCaml: +What is the `let rec` in the OCaml code and the `letrec` in the Scheme code? These work like the `let` expressions we've already seen, except that they let you use the variable `get_length` *inside* the body of the function being bound to it---with the understanding that it will there refer to the same function that you're then in the process of binding to `get_length`. So our recursively-defined function works the way we'd expect it to. In OCaml: let rec get_length = fun lst -> if lst == [] then 0 else 1 + get_length (tail lst) -- 2.11.0