Had a good time today reviewing concepts and exercise for 1.3.2. A few things we've learned:
- The let form is just syntactic sugar for an anonymous function which is invoked in place, it has nothing to do with assignment of imperative languages, although it partially mimic that behaviour
- Function invocation from inside other functions that receives them as parameters is one of the little patter that makes functional programming powerful
- Scheme doesn't use a previously bound variable inside a let form if there is the same variable defined outside the let scope. That is you cannot have cascading bindings making back references to previously defined bindings in the same let form. This is different in Clojure and we've found the Scheme implementation un-intuitive.
For the next time I'd like to leave 1.3.3 as an open exercise (because it just shows two more complicated examples of let bindings and passing functions around). If you want to have a look please feel free to implement them.
We can concentrate on 1.3.4 instead, which is the other part of higher order functions, that is passing them back as return arguments. Then please select at least one exercise at the end of the chapter: 1.40 to 1.46.
Next week I'm not in on Thursday, so I'd like to make a call for Friday instead.
See you then
Renzo