On Dec 23, 2007 3:22 PM, Morten Kromberg <[EMAIL PROTECTED]> wrote:
> First: As Bob pointed out, the bracket notation is not really an operator, it
> is
> "special syntax" which applies in very different ways to different functions.
Given that all operators in APL are special syntax, I think what you mean here
is that later enhancements for defining user-defined operators did not support
anything like user-defined brackets.
> Interestingly, these efforts have given rise to powerful new language features
> that J does not have, in particular the use of dot notation to work with
> (nested)
> arrays of objects. For example, in Dyalog APL, I can extract the entire
> contents
> of all open workbooks from Excel using the expressions:
>
> 'XL' ⎕WC 'OLEClient' 'Excel.Application'
> XL.({squad}Workbooks).({squad}Sheets).UsedRange.Value2
I do not know how dyalog presents excel spreadsheets to its
users, and I do not know what squad means, and I do not know
what your dot extensions do. However, that nested array
functionality in J is not bound to . does not seem to be so
much a feature as an implementation detail. That said, I
can easily extract data from J's nested array structures
using conjunctions like S: (or L:)
> From a an array language point of view, OO is obviously an
> idea which needs to be used sparingly, otherwise you quickly
> lose sight of the data for all the objects. But as an paradigm for
> integration, it works extremely well.
I agree.
But I am begining to think I like Arthur Whitney's idea of an
"interpeter' better.
> (I'm not sure exactly what it is that makes syntax "special" - are
> hooks and forks also "special syntax"?).
I do not think so. However, J's keywords (if. while. ...) are special
syntax, in my opinion.
> DFNS give you a lot of bang for the buck, and they seem significantly
> more elegant and readable than "3:".
3 : does take some getting used to, but I think 3 : offers greater
flexibility. Also, 3 : does not require special syntax (though
it does support special syntax, in the form of control keywords
within its body).
For example, 3 : makes integration of automated code generation
rather simple, should you have a use for such a thing (macro
pre-processors, maybe).
> As previously mentioned, lack of algorithmic punch is NOT what the
> majority of APL users tend to complain about.
And this is not the primary reason I have abandoned APL in favor
of J, either.
That said, I am happy with J's algorithmic punch.
--
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm