By a strange coincidence, just after sending my
item of this title off to this forum I went to
the July/August issue of Computing in Science
and Engineering that had just arrived here in
the post. The front cover identified an article
entitled "Functional Programming" on p.86.
In fact it was a five page article in a regular
column called "Scientific Programming" and it
was entitled "The Promises of Functional
Programming". It mentioned Fortress, F#,
Mathematica, FFTW, OCaml, SISAL, Clojure, Lisp,
Standard ML, Haskell, Scala, and Nemerle.
Nowhere is APL or J or any other dialect of APL
mentioned, unless you consider Mathematica to
be such a dialect.
Reading this caused me mentally to curse and swear
when I realised this. The magazine, a joint
publication of the IEEE Computer Society and the
American Institute of physics, has had a lot on
functional programming over the years, but, if
I remember correctly, always on Python, Mathematica
and Maple. I used to fume when no member of
the APL family ever got a mention.
And now this review article: twelve different
programming languages and no APL family member !!!!!
This should be a wake-up call to APLers, and
especially to Jers.
Why especially to Jers ?
I don't think APLs have a chance of getting into
the science and engineering community in any big
way. Apart from anything else, languages like
Python and Mathematica have a lot in common with
APL/J. Back when Python was coming into prominence
and I was teaching it in conjunction with SQL,
Prolog, SQL, and J (see eprints.utas.edu.au/2605),
I exchanged a sequence of emails with Guido van
Rossum, Python's originator, and he expressed
surprise at how much Python and J had in common.
Therefore we have to get in through the outside
world, and here is where I feel tacit J has a
chance. (In the following, remember that I'm
not advocating that explicit features of J be
dropped, only that, for the general public, they
stay in the background.)
The point about tacit J is that it's very much
like blackboard and elementary textbook mathematics.
Every formula is a one-liner, only connected to
elsewhere through names defined elsewhere.
This basic one-liner-ness (monolinearity?) is,
as far as I can make out, the distinguishing
feature of tacit J, a basic simplicity that makes
it feasible to use to teach mathematics in school
in way that would seamlessly connect it with
arithmetic. (The separation of arithmetic and
mathematics in schooling is a fundamental flaw.)
A calculator program based on tacit J (maybe
eprints.utas.edu.au/1573 is relevant here) and
curriculum-based textbooks combining tacit J and
traditional mathematical notation might well be
successful in a program of infiltration into
schools.
I could carry on for ages on this topic, but
I must emphasise my belief, based on experience
in trying to teach pure tacit J, that tacit J
will not be complete and successful without the
ability to bring designate operand variables in
a manner such as I have been suggesting for
the [. and ]. verbs.
Without these quasi-identity functions/verbs
(to borrow Roger Hui's comment on [ and ])
function variables would need to be explicitly
named, which is both ugly, awkward, and
basically limiting.
Neville Holmes, P.O. Box 2412, Bakery Hill 3354, Victoria
____________________________________________________________________________________
Access Yahoo!7 Mail on your mobile. Anytime. Anywhere.
Show me how: http://au.mobile.yahoo.com/mail
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm