Updated SRFI-105 David A. Wheeler (04 Sep 2012 01:09 UTC)
Updated SRFI-105 highlights David A. Wheeler (04 Sep 2012 01:22 UTC)
Marker #!srfi-105 David A. Wheeler (04 Sep 2012 20:24 UTC)
srfi-105 and srfi-38 Shiro Kawai (05 Sep 2012 01:45 UTC)
Re: srfi-105 and srfi-38 David A. Wheeler (05 Sep 2012 02:23 UTC)
Re: Updated SRFI-105 Michael Sperber (04 Sep 2012 19:12 UTC)
Updated SRFI-105 (2012-09-08) David A. Wheeler (08 Sep 2012 22:45 UTC)

Re: srfi-105 and srfi-38 David A. Wheeler 05 Sep 2012 02:23 UTC

Shiro Kawai:
> Will #1=f(#1#) mean (#1=f #1#) or #1=(f #1#)?

Great question!

> Since 'f(x) => (quote (f x)), I guess the latter is more
> consistent (that is, after seeing #1=, the reader recurses
> to gather the longest <datum> and then labels it.)

Agreed.  Anyone disagree?

> But I'm not sure the current draft spec is clear enough,
> for, according to srfi-38, the "#1=f" part consists a <datum>.

The expression f(x) is a datum in neoteric-expressions, since it's just another way of writing (f x). It certainly should NOT stop reading after it reads f if an open paren follows immediately.

But I think you're absolutely right, the spec isn't clear enough.  Great catch. So how do we make it clearer?  I think we can clarify this by tweaking the definition and giving an example.

First, in the neoteric-expression definition, change:
"A &#8220;<dfn>neoteric-expression</dfn>&#8221; or &#8220;<dfn>n-expression</dfn>&#8221;
is a curly-infix-expression, with the following modifications where
<var>e</var> is any datum expression:"

to:
"A &#8220;<dfn>neoteric-expression</dfn>&#8221; or &#8220;<dfn>n-expression</dfn>&#8221;
is a curly-infix-expression, but with the following additional syntaxes for a datum where
<var>e</var> is any datum expression:"

With this change, it's clear we're defining datums.

Then let's add the given example:
#1=f(#1#)
maps to
#1=(f #1#)

Would that work?  Is there a better way?  Any objections?

--- David A. Wheeler