Newsgroups: comp.lang.apl
Path: watmath!watserv1!utgpu!cs.utexas.edu!wupost!darwin.sura.net!haven.umd.edu!socrates!socrates!rockwell
From: rockwell@socrates.umd.edu (Raul Deluth Miller-Rockwell)
Subject: Re: APL Transliteration (was Re: APL slash bang (Repost))
In-Reply-To: wchang@cshl.org's message of Tue, 24 Mar 92 20:58:46 GMT
Message-ID: <ROCKWELL.92Mar24234831@socrates.umd.edu>
Sender: rockwell@socrates.umd.edu (Raul Deluth Miller-Rockwell)
Organization: Traveller
References: <ROCKWELL.92Mar20072450@socrates.umd.edu> <1992Mar23.151511.27848@cshl.org>
	<ROCKWELL.92Mar23223711@socrates.umd.edu>
	<1992Mar24.205846.13357@cshl.org>
Date: Wed, 25 Mar 1992 04:48:31 GMT
Lines: 80

Bill Chang:
   In an object oriented system like Smalltalk, the "caller" sends a
   message "do so-and-so with such-and-such parameters" to the
   "callee".  The parameters that are sent can be a subset of those
   actually needed; the rest are taken from the "callee" object's
   state.  This mechanism has been simulated using nested arrays for
   messages (recent conferences).

This mechanism seems rather akward for expressing the sorts of things
dyadic functions usually deal with.  Things go fine, as long as you're
on a serial cause/effect model.  But when you try and express more
general relationships, well..

Let's just say that my abilities in this area aren't so hot.

   Is it true that there are no non-global free variables in J?


I haven't the slightest idea.  What's a non-global free variable?

   Also no local functions, right?

Eh?  J has local functions, both anonymous and named.

   If true, complex states have to be packaged into nested arrays in
   order to become arguments to function calls.  Kind of like C and C
   structures.  (But C is pointer based, so this kind of thing is
   cheap.)

J also supports a data representation of verbs.  Which means you can
have arrays of verbs, use associative lookup techniques to select
them, etc. etc.

   This is obviously a design decision with significant
   consequences...  We need to see more examples.

What sort of examples would you like to see?  I could pull something
out of a hat, but maybe you have some particular sort of application
you'd like to see addressed?


   >   But ambiguity from ambivalent functions we can do without!
   >
   >That, I think, is going to have to wait till we get a larger
   >symbol set...

   You can't be serious :-) J has more symbols (complex ones) than
   APL; they all got filled with functions.  In fact, there are (I
   think) six functions associated with each ASCII letter or
   punctuation: monadic and dyadic x x. x: (perhaps not all are taken
   at the moment).  That's a lot of functions.

Not all are taken at the moment, and of those that are take, not all
are verbs.  Also, alphanumeric names ending in a colon are user
definable.  For example, you could make a definition
        ascii:  =: a.
or, if you prefer,
        av:     =: a.

And presto, a new keyword [at least, till the time you exit j].

   We could have had more adverbs x; x! x? etc. instead of
   overloading.  But this is just another of Iverson et al.'s design
   decisions: to be maximally comprehensive.  Why would an even larger
   symbol set make any difference?

Well, maybe it wouldn't.  You're right that arbitrary length strings
allow for as many symbols as one could ask for.

   What we need is a good collection of examples of J programming
   style (yes I know they exist, but I can't read them yet :-).

Er.. you're wanting someone else to read them for you?

Ask specific questions, and you'll get specific answers.  Otherwise,
be patient, and you'll see whatever people feel interested in writing
about... 

-- 
Raul Deluth Miller-Rockwell                   <rockwell@socrates.umd.edu>
