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

Reply via email to