APL syntax: Difference between revisions
Jump to navigation
Jump to search
Miraheze>Adám Brudzewsky No edit summary |
Miraheze>RikedyP |
||
Line 29: | Line 29: | ||
== Example function application == | == Example function application == | ||
<pre class="language-apl"> | <pre class="language-apl"> | ||
÷3 ⍝ Prefix primitive function | |||
0.3333333333 | |||
1+2 ⍝ Infix primitive function | |||
3 | |||
+/1 2 3 4 ⍝ Prefix primitive derived function | |||
10 | |||
2+/1 2 3 4 ⍝ Infix primitive derived function | |||
3 5 7 | |||
</pre> | </pre> | ||
Revision as of 12:01, 20 September 2019
APL's core syntactic principles are:
- Arrays as first class citizens
- Functions take arrays as argument(s) and produce arrays as result
- Functions have long right scope
- Operators take functions and/or arrays as operand(s) and produce derived functions
- Operators have long left scope
Example array definitions
simplenumvec←1 2 3 4 ⍝ A simple numeric vector simplecharvec←'ABCD' ⍝ A simple character vector
Example function definition
∇ r←l Tradfn r [1] ⍝ An infix (dyadic) tradfn [2] r←l r ∇
Example operator definition
∇ r←larg(Main OVER PreProc)rarg [1] r←(PreProc larg)Main(PreProc rarg) ∇
Example function application
÷3 ⍝ Prefix primitive function 0.3333333333 1+2 ⍝ Infix primitive function 3 +/1 2 3 4 ⍝ Prefix primitive derived function 10 2+/1 2 3 4 ⍝ Infix primitive derived function 3 5 7