So, basically: ENLIST does not treat its RHS as a new line expression,
unlike QUOTE et al., SPLIT, or GROUP, i.e. it won't somehow recurse
into readblock-internal.

ENLIST treats its RHS specially, and if the next line is indented,
also treats that specially.

If ENLIST treated its RHS as an expression, then it will be no better
than SPLIT, and might as well be dropped.

Anyway, I've got my hands full on SPLIT and its effects, as well as
planning the reorganization/refactoring of modern.scm and sugar.scm
and sweet.scm, and add source location information at least on Guile
(and preferably also on Racket), so I'm really gonna have to pass
ENLIST to one of you guys to consider.

Basically, remember that:

1.  GROUP is how group actually works in SRFI-49.

2.  ENLIST is how you imagined group was *supposed* to work when you
first saw SRFI-49's sentence "The GROUP symbol is used to allow lists
whose first element is also a list.", and then saw it used in let
examples of the SRFI-49 document.

In short: ENLIST is simple to talk about informally but once you start
thinking of it, I suspect ENLIST is going to be larger/more complex
than what you simply assume.

My first stab at ENLIST is:

1.  ENLIST-at-the-start: Force all elements of the rest of the line to
be a list, and make that list the first element of a higher-level
list; this ends at newline.  If the next line is indented more than
the current line, then get additional sub-expressions at that
indentation level and append those additional sub-expressions to the
higher-level list.

Applying the ENLIST-at-the-start rule:

~ foo bar
. nitz quux
. meow fish

"Force all elements of the rest of the line to be a list...."

;#~ means we are processing ENLIST
#~ (foo bar)
. nitz quux
. meow fish

"...make that list the first element of a higher-level list..."

#~ ((foo bar) ... ; to be continued...
. nitz quux
. meow fish

"...get additional sub-expressions at that indentation level and
append those additional sub-expressions to the higher-level list"

#~ ((foo bar) ...
. (nitz quux)
. (meow fish)
) ; okay, found end here...

Final result:

((foo bar)
 (nitz quux)
 (meow fish))

2. ENLIST-inline: this is when my brain BSOD'ed.

Sincerely,
AmkG

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to