A notation for manipulating arrays of operations
APL '86 Proceedings of the international conference on APL
Analysis of function applications in deep arrays
APL '86 Proceedings of the international conference on APL
Structural experiments with arrays of functions
APL '85 Proceedings of the international conference on APL: APL and the future
Syntactic experiments with arrays of functions and operators
APL '84 Proceedings of the international conference on APL
Function assignment and arrays of functions
APL '84 Proceedings of the international conference on APL
APL two by two-syntax analysis by pairwise reduction
APL '84 Proceedings of the international conference on APL
Valence and precedence in APL extensions
APL '83 Proceedings of the international conference on APL
APL '79 Proceedings of the international conference on APL: part 1
A programming language
Some APL2 programming examples using nested arrays
APL '88 Proceedings of the international conference on APL
User defined data types in APL2
APL '89 Conference proceedings on APL as a tool of thought
APL '90 Conference proceedings on APL 90: for the future
Nested arrays and operators: some issues in depth
APL '92 Proceedings of the international conference on APL
Confessions of two APL educators learning J
APL '93 Proceedings of the international conference on APL
Hi-index | 0.00 |
In both the IPSA and APL2/NARS extensions of APL, the SLASH symbol always represents an operator. Some new users of APL2, having been taught in the past that SLASH is an ambiguous symbol which is a dyadic function when it immediately follows data, find that the result when SLASH occurs between data and another operator is incompatible with that interpretation. The situation did not arise in APL1 because derived functions could not be operands. The classification of SLASH as an operator can be traced to the description given in the book. A Programming Language, from which APL ultimately derives. It was done so that the closely related MASK operation could be specified with the same symbol. In this paper the syntactic differences between dyadic functions and aonadic operators with data operands are explicated using the APL2 concept of syntactic binding. Two straightforward language extensions are considered based on the notions of a depth property, which APL2 shares with STSC's NARS, and pairwise evaluation, which derives from syntactic binding. Together they allow either dyadic functions or monadic operators with data operands to be executed in three structural contexts, which, in the cases of REPLICATE and EXPAND, can be loosely described as the same mask for each of several arrays, a separate mask for each array, and the same array for each of several masks.