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] |
> > And why did the language designers leave out the "else" in "if condition > > do () else do ()"? This is at least as perverse from a programming > > language student's viewpoint as implicit binding of free variables. > > No sugar, please. I /like/ the fact that guile does without the syntactic > sugar. I don't like having to type out "foo extends bar" in java, when > there is already construct for showing that relationship that avoids the > extra word. > > Start adding extra kruft and you break the spirit of the language. The (if) statement in scheme is already kruft, I always use (cond), which also gives me the use of else. > Clear examples are nice too. Much better than street signs. I found them > in the guile tutorial, several web pages, and a couple nice .ps files with > general scheme tutorials. I'd like to thank whoever put together the > current guile reference, because it made setting up my current project go > much faster than figuring out someone else's code would have. Would you share web references with us for beginner level scheme tutorial material that is freely distributable? I found it a bit hard starting but there is a lot of intermediate and advanced material out there. I'm having trouble getting other people started because there is nothing to point them at without spending a lot of time sitting with them and explaining. There are books but they are expensive :-( There is also R5RS but that isn't suitable for a beginner. I'm looking for ``getting started'' type material. > I haven't seen ANYTHING where scope of variable binding is more clear than > a let statement, unless it's the old style perl "everything's global" > attitude. > > Guile isn't descended from "C" or anything like it. Perl is. Java is. > C++ is. If you know C, learning perl is changing how you spell function > names, forgetting to use parens a lot of the time, and not worrying > about what type your variables are. Yeah, perl is less strict about () and more strict about {}, go figure. You can get an everything's global attitude in scheme by sticking a bunch of (define) statements at the top and use (set!) everywhere. It's no worse than C in this regard, and I actually quite like globals, they regularly get bagged but for getting stuff to work in a hurry or explaining something to a beginner, they do the job. > I like the mode of thinking that scheme encourages me to use. I hope that > I can eventually become comfortable enough with it to be as productive > with guile as I am in C. I certainly wouldn't want to turn it into C, though. A language should not encourage a mode of thinking, it should ideally be transparent to all modes of thinking. I doubt that this is achievable but setting things up so that you can do the same job in a lot of different ways is a very healthy thing. The less you encourage railroad thinking the better IMHO. - Tel