[net.lang.apl] Data structures in APL

peterson@dec-cmkrnl.UUCP (05/15/86)

I have heard of some APLs which implement nested arrays.  Sounds like a
step in the right direction.  But what do nested arrays buy the average
APL user?  Besides 3 character string arguments to functions, I mean.

-bob	usenet: decwrl!dec-rhea!dec-vaxwrk!peterson
        arpa:	peterson%vaxwrk.DEC@decwrl.ARPA

ir645@sdcc6.UUCP (05/16/86)

In article <2997@decwrl.DEC.COM> peterson@cmkrnl.DEC (My God, it's full of stars!) writes:
>I have heard of some APLs which implement nested arrays.  Sounds like a
>step in the right direction.  But what do nested arrays buy the average
>APL user?  Besides 3 character string arguments to functions, I mean.
>
>-bob	usenet: decwrl!dec-rhea!dec-vaxwrk!peterson
>        arpa:	peterson%vaxwrk.DEC@decwrl.ARPA

Scientific Time Sharing (STSC) of Rockville Maryland 301-984-5000 has a
product "APL*PLUS/UNX" which is a nicely extended APL implimentation for
unix systems.  It includes such extended features as generalized arrays, grade
sorts matricies, text by user collating sequence, each operator does for user
functions and APL system functions what scan, compress, inner/outer product do
for primitive operators (this elimenates almost all loops).  Includes "Native
Mode File" functions, ie quad-NREAD to read standard text files.

I've used their APL on an IBM PC which has all the above except generalized
arrays and the each function.  It is a beautiful implimentation.  I have not
tried the /UNX versions.

I have no formal relationship with STSC.  I am doing some testing (unpaid) for
them.

Dan Graifer

kwh@bentley.UUCP (KW Heuer) (05/19/86)

In article <2997@decwrl.DEC.COM> dec-cmkrnl!peterson writes:
>I have heard of some APLs which implement nested arrays.  Sounds like a
>step in the right direction.  But what do nested arrays buy the average
>APL user?  Besides 3 character string arguments to functions, I mean.

"Array of strings" is a natural concept which has no clean representation in
standard APL.  (Padding a 2D array destroys the significance of trailing
blanks, and may use an unacceptable amount of space.)  A function with three
string arguments is a special case of this.

Also, it's often useful to mix numeric and character data in the one object
(like "struct" in C).  This is a heterogeneous array rather than a nested
array, but some implementations handle both with the same language features.

Karl W. Z. Heuer (ihnp4!bentley!kwh), The Walking Lint