m : '...'        to  {...}        is like
(x1;x2;...) { y  to  y[x1;x2;...]

{...} in APL is another special syntax,
whereas J tries to be functional.

However, if indexing in J maintains the scope (a variable 
from outer scope can be used to construct expression x1),
the explicit definition introduces totally different
and disconnected scope. And that is another ugly bit.

I don't know if they do it in APL for {...}, but
it could allow for naturally supporting such things 
as closures.


> From: Viktor Cerovski <[email protected]>
> 
> To me the main problem with explicit definitions is that 
> they are always first and foremost strings (or as it is often said,
> scripts).  
> 
> Tacit expressions are more alive: as soon as you define one,
> it gets evaluated and you get something back that is valid,


> From: Roger Hui <[email protected]>
> 
> Dyalog APL did not assign function (and operator) meanings 
> to { and }.  Instead, you can do the equivalent of
> 
> length=: {%:+/*:y}
> 
> To do the same in J we'd need (at the very least) 
> to find a pair of "enclosing" symbols.  To get rid of
> the quotes we'd need something stronger.  (Special
> parser rules.)




> From: Andrew Nikitin <[email protected]>
> 
> I think the reason that so many people dislike explicit definitions is 
> because 
> they are syntactically ugly. Multiline is only mildly ugly, but single line 
> is > freak. Come on,
> 
> length=:3 : '%: +/ *: y' ?


      
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to