[plt-scheme] Implicit begins (and programming style)
Disclaimer : I am aware that scheme code should be as functional as possible,
and that begins are only necessary/useful/legitimate when side-effects are
needed. But some programs need side-effects... So :
Which forms include an implicit begin ?
So far, I have noted :
- lambda, define (for procedures, not for variables)
- let, letrec, let*
- cond, when, unless (not if !)
Any others ? Any definitive list somewhere ?
Googling has given me this, which has a few more (case, do, fluid-let,
named-lambda) :
http://www.cs.colorado.edu/~main/manuals/scheme/scheme_39.html
but it does not pretend to be exhaustive...
Style-wise, should one write code with explicit begins even where they are not
needed, for readability (apart from specific cases with heavy indentation, I
do not see using explicit begins as more readable ; am I wrong ?) or on the
contrary, avoid writing begins anyplace it is possible for conciseness ?
Since I mentionned Scheme programming style (this should probably be a
separate post, sorry !), I have googled extensively for scheme style guides,
and while I found two that are useful, they do not go as far as I would
like...
http://community.schemewiki.org/?scheme-style
http://web.archive.org/web/20020809131500/www.cs.dartmouth.edu/~cs18/F2002/handouts/scheme-tips.html
Any pointers to discussions or pages on Scheme programming style would be
appreciated. Currently, I read as much code as I can, and try to imitate the
style of what I find readable while avoiding the style of what I can't
parse. It's a good and tried method, but style guides allow for more
efficient leveraging of other people's experience.
--
Sincerely,
Thomas-Xavier MARTIN
txm+plt-scheme at m4x.org