Re: how useful are collecting lists?
David Vanderson 14 Mar 2013 01:19 UTC
On 03/13/2013 04:36 PM, David A. Wheeler wrote:
> Actually, they weren't. I was trying to be picky about what's allowed after "." (e.g., I don't think "$" and "\\" are sensible), and obviously was *too* picky. You're absolutely right, that should be permitted.
>
> So this is an important tip, we need to allow this case. I've changed the BNF and Scheme implementation so that a collecting list is legal after the dot in "rest". Thus, this is now legal:
> define x . <*
> ! define y 5
>
> ! define z 6
> *>
>
> I haven't modified "head", so if "." is the first atom on a line, a collecting list currently can't follow. I can't figure out why you'd want to do that, I'd expect a user to just use a collecting list in that case.
My plan was to replace "<* begin" with ". <*" in the example, so this:
define-library
example grid
export make rows cols ref each rename(put! set!)
import scheme(base)
<* begin
;stuff
*>
becomes (in a scheme with implicit begin):
define-library
example grid
export make rows cols ref each rename(put! set!)
import scheme(base)
. <*
;stuff
*>
Does this run against your current "head" rule?
>
> So we already have an important comment (from David Vanderson) that's pointed out a problem, and I've posted a possible solution (one that I hope others will agree is sensible). Excellent! Seems to me that's why we have a SRFI process...
>
> --- David A. Wheeler
>
>
Definitely working out well for me so far. I'm only sorry that I didn't
hear about it earlier - my first notice came from your post to the
Racket dev list a week or so ago.
Thanks,
Dave