The monadic execute verb (⍎) is not aware of its context, so it is mostly useful in transforming character input into numbers.
Dyadic execute is aware of the global context. The result is from
evaluating the right argument. If evaluating the right argument fails,
the result is from evaluating the left argument.
⎕Error
is provided to discover the reason for failure within the right
argument.
QuoteQuad (⍞) output can be used to establish a prompt. Output with more than one line will establish a prompt and an initial value. See QuoteQuad in 1 Examples for details on how this works.
Quad and QuoteQuad input are not distinguished. Use:
⍎⎕
to provide evaluated input without access to your name space,
or use:
''⍎⎕
to provide access to your global name space.
The system noun, ⎕CT is implemented in this version. For compatability with NGN APL, the initial value is 0. The noun is global and can have values between 0 and 1e¯10. Since I know nothing about complex numbers, I have not extended ⎕CT support for those. You will see examples for dyadic ⍳, ∊ and ≡ in 1 Comparisons. Please be advised, these verbs are slow.
Indexing of numeric vectors behaves like strand notation, and fails.
10 20 30 40 [0 2]
LENGTH ERROR
Instead, use:
(10 20 30 40)[0 2]
Overtake on empties does not preserve type. All empties are
presumed to be numeric. To test for character arguments, you
need to be creative. I currently use
' '∊2↑1⍴⍺
Adverbs and Conjunctions are recognized by the presence of
reserved names.
⍵⍵ or ⍹ Conjunction
⍺⍺ or ⍶ Adverb
While the definition calls for these to be verbs or nouns, there is
currently no way to recognize these formal parameters contain nouns.
While this restriction means users cannot model adverbs like / or conjunctions like ⍤, experience shows that the current limits are a small price to pay for writing code without superfluous parenthesis.
There is a new new apply conjunction (⍭). It is actually a general
facility, but it's only use at this point is to provide an Axis variant
of the following verbs.
⍺ ↑ ⍵ ⍺ ↑⍭{Axes} ⍵ |
Take the primary definition provides for a diminished left argument, as if the axes specified is ⍳⍴⍺. The variant definition applies the left argument to the axis specified dimensions. |
⍺ ↓ ⍵ ⍺ ↓⍭{Axes} ⍵ |
Drop the primary definition provides for a diminished left argument, as if the axes specified are ⍳⍴⍺. The variant definition applies the left argument to the axis specified dimensions. |
⍺ ⌽ ⍵ ⍺ ⌽⍭{Axis} ⍵ |
Pivot the primary definition only provides a scalar left argument. The variant is required to provide a full left argument as well as specify the axis. |
⊂ ⍵ ⊂⍭{Axes} ⍵ |
Enclose the primary definition works as if the specified axes are ⍳⍴⍵. |
⍺ ⊂ ⍵ ⍺ ⊂⍭{Axis} ⍵ |
Partitioned Enclose the primary definition works as if the last axis was specified. |