[comp.lang.apl] APL-like languages

liberte@m.cs.uiuc.edu (07/18/88)

I've been reading this group for a couple years now and havent noticed
any discussion of APL features in other languages.   So what have
people found?  

I would be interested in learning about APL-like libraries
for object-oriented languages.  The APL syntax and operator
overloading are interesting by themselves.  But the general array
processing capability is what makes APL uniquely special.

Also, the interactive environment speeds debugging.
I learned APL (as my first language) 15 years ago and since then
have only seen a couple languages with similar interactive
capability.  I dabbled in Forth partly for its interactive
environment.  Most interpreted language environments provide this,
but compiled implementations could too.  Lightspeed Pascal for the
Macintosh allows arbitrary expression evaluation while debugging.

I guess I was spoiled by APL in some ways.  I expected the good
features of APL to be found in more programming languages/environments.

Dan LaLiberte
uiucdcs!liberte
liberte@cs.uiuc.edu
liberte%a.cs.uiuc.edu@uiucvmd.bitnet

ljdickey@water.waterloo.edu (Lee Dickey) (07/18/88)

In article <4600002@m.cs.uiuc.edu> liberte@m.cs.uiuc.edu writes:
>
>I've been reading this group for a couple years now and havent noticed
>any discussion of APL features in other languages.   So what have
>people found?  
>

One language comes to mind:  NIAL

It is very much like APL, but includes structured programming concepts.
Pascal programmers feel at home here, and APL programmers can write
APL like code with most primitives done via keywords.

-- 
    L. J. Dickey, Faculty of Mathematics, University of Waterloo.
	ljdickey@WATDCS.UWaterloo.ca	ljdickey@water.BITNET
	ljdickey@water.UUCP		..!uunet!watmath!water!ljdickey
	ljdickey@water.waterloo.edu	

amit@umn-cs.cs.umn.edu (Neta Amit) (07/18/88)

Nothing to compare, but if you're interested in powerful, expressive
languages that have either interesting control structures or interesting
data structures, I suggest that you take a close look at Scheme (for the
former) and Icon (for the latter).  In particular, notice how dynamic
and flexible arrays/lists/tables can be in Icon (interchangeably); and
how you can tailor the evaluator to your needs in Scheme (lexical/dynamic
scoping, lazy evaluation, multiple environments); Icon's co-expressions;
and its controlled backtracking;  And functions (of any order) in Scheme,
which are truly first class citizens, which can be passed, returned,
be built/modified/destroyed, be named or anonymous.
(You may find the recent book by Ralph Griswald, on the Implementation of
the Icon Programming Language, very interesting.)

Will some netlanders closely familiar with Miranda please comment? Other
particularly interesting languages?




-- 
  Neta Amit 
  U of Minnesota CSci
  Arpanet: amit@umn-cs.cs.umn.edu