On 16 March 2016 at 09:23, David B. Lamkins <da...@lamkins.net> wrote:


> On Tue, Mar 15, 2016 at 11:35:59AM +0800, Elias Mårtenson wrote:
>


> The lexical rewriter could be a plugin, but it could also be an APL
> function. Imagine being able to assign an APL function to
> quad-SOMETHINGOROTHER to define your own local syntax. You'd still be
> running APL2 code under the covers, but you'd be able to define your own
> syntax for anything that can be rewritten (presumably less conveniently) in
> APL2. Remember that the rewriter would have full access to the underlying
> APL2 interpreter, so you'd be able write entire programs to support the
> processing of some new syntax.
>
> (If the above sounds familiar, it's probably because it's an amalgamation
> of ideas from Lisp.)
>

It does indeed sound a lot like Lisp form rewriting. I'm all for this idea,
and I'd be willing to make a test implementation of it, as long as someone
(else) can can come up with a decent way of actually create a way to
unambiguously state the input to be transformed (the equivalent of the
DEFMACRO destructuring form in Lisp).


> Also, quad-SOMETHINGOROTHER would be a nightmare in shared code unless
> there was a good way to support localization (in the APL sense, not the
> I18N sense).
>

The extensions would be part of the program itself, just like in Lisp. I
don't see a problem here.


> >    Jürgen has previously explained that there are technical difficulties
> >    in expanding the character repertoire outside 255 characters, but I
> >    still feel this is one old limitation that deserves being eliminated.
>
> I understand why we need to limit quad-AV to 256 elements. But what about
> composed characters? Would it be enough to alias the Unicode "compose"
> codepoint to the ASCII "backspace" (that is already, I'm assuming, in
> quad-AV...)?
>

I'm not entirely sure why Quad-AV even needs to exist in a modern program?
We should be able to use all of Unicode to name our functions.

Regards,
Elias

Reply via email to