APL syntax: Difference between revisions

From APL Wiki
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

Scoping rules

Functions

Operators

Template:APL programming language