This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Scheme tutorial


"Ian Bicking" <bickiia@earlham.edu> writes:

> 
> I guess I'm making a bit of a distinction between the Scheme 
> philosophy and reasonably decent Scheme code.  If you iterate 
> over a list by finding it's length and using list-ref to get each 
> member, then you've done something bad.  So a tutorial probably 
> shouldn't even tempt the beginner by letting on that list-ref exists 
> until they've got a good grasp on better methods.  If I had ever 
> TA'ed a class that taught Scheme I would probably know even 
> worse things a naive programmer could do, but I haven't so I'm 
> optimistic :-)
> 
> It's OK to write imperative code, even in cases where functional 
> code is more elegant.  They don't have to appreciate the aesthetic 
> of Scheme.  That will come.  And if it doesn't it will hardly help if I 
> bash them over the head with it.  

But that's the fun bit! ;)

> 
> I think Guile (and perhaps Scheme as a whole) would be well 
> served by a bunch of essays on little topics like this.  Fluids, 
> guardians, continuations, those memoizing macros... there's a 
> number of small topics like that.
> 
> Also, those essays wouldn't be as useful if there wasn't a way to 
> figure out which of those helps you do what.  If you want to do 
> fancy control structures you wouldn't naturally think "ah... I need to 
> study continuations".

What it could have, is little descriptions of what you can do with
continuations, and a caveat saying basically "You probably don't need
these right now, and they're pretty likely to confuse you. Come back
when you hit something you can't really accomplish with normal control
flow". Having them as separate essays would likely be the better
approach, though, with a very brief description in the tutorial and a
pointer to the more exhaustive reference (now, to find people to write
the more exhaustive bits!).

-- 
Greg