[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Please update SRFI-105

This page is part of the web mail archives of SRFI 105 from before July 7th, 2015. The new archives for SRFI 105 are here. Eventually, the entire history will be moved there, including any new messages.



Alan Manuel Gloria:
> Looks like you overlooked this e-mail:

You're right, sorry about that.  Thanks for pointing that out.

> Here's another bit that seems a bit confusing...
> 
> The approach does allow references to variable names with “-”
> embedded in them without effort,
> but the names must be spelled differently (and thus inconsistently)
> by replacing every “-” with “_”.
> Thus, variables like “list-ref” must
> be spelled as “list_ref” inside the infix.plt notation
> without effort.
> 
> In particular the last "without effort" there seems to be something
> that got left behind in some edit.
> 
> I also think that the bit "The approach does allow references to
> variable names with '-' embedded in them without effort," should be
> "little effort" instead, as it's not actually *without* effort, users
> having to translate - to _ after all.
> 
> --
> 
> At the very least, it seems the bit "must be spelled as 'list_ref'
> inside the infix.plt notation without effort." doesn't seem to scan
> well.  I'm not sure what you mean here by the "without effort" clause;
> I suspect it's a mistake, but maybe you meant something else?

Hmm.  Okay, let's start with a discussion about what's *documented*, and then clarify the ramifications of the undocumented and useful |...| notation.  That may make things clearer.  Here's my attempt:

=================================================
Many variables and operators are more difficult to refer to
and/or must be spelled differently (and thus inconsistently).
Its documentation states that
identifiers (which are also used for function names) must
“begin with a letter, and is optionally followed by series of letters,
digits or underscores.  An underscore is converted to a -”.
Under these rules, it is not possible to call procedures with names like
&#8220;<samp>char=?</samp>&#8221; or use variables
with &#8220;*&#8221; embedded in them.
It does allow references to variable names with &#8220;-&#8221;
embedded in them, but in this approach
names must be spelled differently (and thus inconsistently)
by replacing every &#8220;-&#8221; with &#8220;_&#8221;.
Thus, variables like &#8220;list-ref&#8221; must
be spelled as &#8220;list_ref&#8221; inside the infix.plt notation
as documented.
The infix.plt documentation did not, at the time of this writing,
document any way around this limitation.
However, on 2012-10-21,
Jens Axel S&#248;gaard reported that other identifiers <em>can</em>
be referred to using the |...| syntax.
This works around the problem, but is slightly more cumbersome when
it is necessary, and is inconsistent with other code where |...|
is not required.
These are fundamental side-effects of not <em>requiring</em> infix operators
to be delimited (e.g., by whitespace).
Since some symbols must be escaped with |...| inside infix.plt, yet they
do not need to be escaped otherwise, this is an inconsistency, and this
inconsistency can lead to potentially hard-to-find errors.
======================================================


--- David A. Wheeler