| Joel J. Adamson 2007-08-20, 7:14 pm |
| Ray Dillinger <bear@sonic.net> writes:
> Key to understanding lambda is that it is the *only* thing that binds
> names and establishes lexical scopes. Anything else which seems to
> do so is just lambda wearing a different hat. It does this by creating
> *functions* within which those names are bound.
>
> So, under the hood, you can think of a let expression as an anonymous
> function. Its formal arguments are the names it binds, and the values
> with which they're seeded are the actual arguments.
>
> Sometimes this observation leads to greater enlightenment; other
> times it tends to muddle the mind of beginners. Here's hoping that
> it works for you.
It's working for me: I'm getting past thinking in terms of imperatives
and thinking more in terms of functions.
The thing that's holding me up as far as my real programming goal is
now that I understand how to think functionally, I'm thinking a lot
about the data structure --- as in "Should I really enter the data the
way I thought I should originally?" I've designed top-level
procedures that work, it's just a matter of giving them data they understand.
Joel
--
Joel J. Adamson
Biostatistician
Pediatric Psychopharmacology Research Unit
Massachusetts General Hospital
Boston, MA 02114
(617) 643-1432
(303) 880-3109
|