[net.lang.apl] Nial, an extended apl

dgary@ecsvax.UUCP (D Gary Grady) (05/16/86)

I've been playing lately with the Nested Interactive Array Language NIAL
(pronounced "kneel").  It allows arrays to contain other arrays of
arbitrary type and dimensionality.  It uses the normal ASCII character
set and has about a billion reserved words.  It also has the structural
features missing from APL.  (Anyone who thinks APL primitives in clever
combinations are all-powerful is invited to write a program to compute
a determinant in apl.  And don't try to weasel out by insisting
determinants are a Bad Thing.)

The version I'm using (Q'Nial on an IBM PC) cleverly displays the
structure of arrays by means of boxes drawn with the IBM extended
character set.  Using conventional ASCII, this means that if I type in
the statement
	("Tom 17)("Dick 9)("Harry 44)
I see something like this:
	+-------------------+-----------------+--------------------+
	| +---------+-----+ | +---------+---+ | +----------+-----+ |
	| |  Tom    | 17  | | |  Dick   | 9 | | | Harry    | 44  | |
	| +---------+-----+ | +---------+---+ | +----------+-----+ |
	+-------------------|-----------------+--------------------+

Here's a Nial program:

	fibonacci IS OPERATION N {
		Fiblist get 0 1 ;
		WHILE last Fiblist < N DO
			(last Fiblist +
			last front Fiblist);
		ENDWHILE ;
	front Fiblist }

Yes, it does look like an unholy union of APL, Lisp, and C.  And that's
not a bad description.  I like the structured programming constructs and
the ability to apply operators to even user-defined functions
("transformers" to user-defined "operators" in Nial terminology).  I
don't like the long list of reserved words (worse than Cobol), the
confusing rules about how deeply into a structure an operator reaches,
the equally confusing rules on precedence of monadic and dyadic
operators (and the fact that ALL operators can be used in monadic or
dyadic form; that is, + 1 2 is the same as 1 + 2!).

Nial exists mainly as an expression of the nested rectangular array
theory of Trenchard More.  I don't know that it's of much value as a
practical language right now, but there is some promise for the
future.  If you'd like more information try writing Nial Systems
Limited, 20 Hatter St, Kingston, Ontario K7M 2L5.  I'm not connected
with them.
-- 
D Gary Grady
Duke U Comp Center, Durham, NC  27706
(919) 684-3695
USENET:  {seismo,decvax,ihnp4,akgua,etc.}!mcnc!ecsvax!dgary