This is the mail archive of the guile@sourceware.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 book recommendations


On Tue, Jun 06, 2000 at 01:33:33PM -0700, Peter C. Norton wrote:
> You know, I like scheme in principle, and it's fun to read, but I have one
> hell of a hard time really learning to program in it.  I'm starting to

Yeah, I don't think there is much out there. I think the best way to
learn Scheme at this point is to simply start using it. Think up some
sort of program you'd like to use, and then try to code it.

I have read an awful lot on Scheme (Dybvig, SICP, Little Schemer, tons of
web pages) but I never actually understood it very well until I started
trying to code in it.

I have some recommendations; I never got far without doing these things:

1. Making sure your editor can deal with all the parentheses - I use vi,
unlike most people using Scheme (I get the distinct impression everyone
is using Emacs), and I had to write up a 'Scheme mode' for vi before I
could write any extensive Scheme code.

2. Use map and for-each - I have found that the quickest and easiest
way to code anything in Scheme (actually this applies to any language)
is to make it data driven, that is put the data you need to work on
in a list, and transform it from there, and the easiest way is usually
to construct a procedure as an argument to map or for-each. It's such
a simple concept, but it doesn't exist in the same form in most other
languages so I overlooked it at first.

3. Use SLIB - R5RS is missing so many things that you take for granted
in other languages (sorting, string searches, and structures come to
mind), but SLIB fills in most of the gaps. Whenever you think "Good God,
why is this missing?" it's probably in SLIB.

Scheme texts usually mention 1, but not 2 and 3.

-- 
C. Ray C. aka Christopher Cramer
crayc@pyro.net
http://www.pyro.net/~crayc/

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