Newsgroups: comp.lang.apl
Path: watmath!watserv1!utgpu!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!jvnc.net!phage!wchang
From: wchang@cshl.org (Bill Chang)
Subject: Re: APL slash bang (Repost)
Message-ID: <1992Mar23.213726.11453@cshl.org>
Summary: Short reply
Sender: news@cshl.org (NO MAIL)
Organization: Cold Spring Harbor Laboratory
References: <1992Mar19.190314.27860@csi.jpl.nasa.gov> <1992Mar19.220251.29999@cshl.org> <1992Mar23.193433.2987@csi.jpl.nasa.gov>
Date: Mon, 23 Mar 92 21:37:26 GMT
Lines: 68

In article <1992Mar23.193433.2987@csi.jpl.nasa.gov> sam@csi.jpl.nasa.gov 
(Sam Sirlin) writes:
>
>In article <1992Mar19.220251.29999@cshl.org>, wchang@cshl.org (Bill Chang) writes:
>I agree entirely about an ASCII version of APL symbols, and have my
>own version - really just a generalization of the existing efforts
>(samples of most of which are available from waterloo). Lee Dickey,
>John Mitloehner and I have been kicking various ideas around regarding
>this and porting workspaces - John has a paper at APL 92. I'll
>probably post a newer version of my ideas soon...

I'm curious how you are handling the problem of syntactic and semantic
ambiguity due to ambivalent functions (see several postings floating
around).  Or do you simply ask users to use cover functions?

>Regarding APL\!, it's certainly APLish in its compactness, but I'm not
>sure that's desirable for an ASCII version. Especially the uses of !,
>/, \, and ? for non-obvious functions different from their standard  
>definitions. If the standard APL symbol is available in ASCII, why not
>use it the same way? 

Once we did that, the rest of the design becomes so constrained that 
we end up going to a larger set of symbols (the ugly ones :-).  The 
result suffers.  I'll admit I agonized over this, but decided $ or
/. for rho (hence $$ or /./. for rank) is too high a price to pay
for this mostly illusory "compatibility".  Why waste perfectly good 
symbols ! and ? on factorial and roll?

>... Things like ~#. require memorization of yet
>another set of glyphs...

Well, # is execute and ~# is format, so #. for decode and ~#. for encode 
are their less popular cousins.  Not all APL operators are equally 
important; some must be given combinations (or keywords as you suggest).

>... this "word" style would also be less intimidating to non-APLers than
>your cryptic version - those I've shown J have been similarly
>intimidated. 

I am not surprised! :-)  Please show them APL/! :-)

(Is there a rule regarding . versus : as adverbs?)

>... I think that one cryptic character per "function" (APL)
>is actually less intimidating than 2 or 3 (J or APL\!), even if the 2
>or 3 are ASCII. 

This is probably true.  Unfortunately we sometimes can't have APL glyphs.
The design principle of APL/! is that the most commonly used operators are
given the best-looking symbol combinations--single letters if possible
(hence / ! | ~| for rho, iota, take, drop; please see another note I posted).

(Actually in APL it's one cryptic character per _pair_ of functions.)

>... I think that in addition there are alot of characters
>you've left out that exist in various quad AV's - various overstrikes
>of the ISO APL set that may be distinct to a particular dialect, for
>example hoof and squish quad. Since noone can know just what someone
>will decide to use, I think an ASCII version should include provision
>for describing overstrikes. I suggest .ov or .overstrike.

I think this really isn't a language but an I/O problem.  As for non-ISO 
operators, I endorse "initials" (abbreviations in the style of J).

Have I earned even one convert yet? :-)


-- Bill Chang (wchang@cshl.org)         Cold Spring Harbor Lab., NY
