From APL Wiki
Revision as of 21:43, 10 September 2022 by Adám Brudzewsky (talk | contribs) (Text replacement - "<source" to "<syntaxhighlight")
Jump to navigation Jump to search

dzaima/APL is an implementation of APL in Java, created and maintained by dzaima. It is primarily based on Dyalog APL, but handles some parts of the language more strictly and includes additional primitive functions and operators while adding dictionaries as a native datatype. It also includes Processing integration.

dzaima/APL adds many new primitives and extensions to existing primitives, most taken from or inspired by Adám Brudzewsky's experimental Extended Dyalog APL, for example:

  • <syntaxhighlight lang=apl inline>⍮</source> Pair (<syntaxhighlight lang=apl inline>{⍺ ⍵}</source>)
  • <syntaxhighlight lang=apl inline>⊇</source> Select (<syntaxhighlight lang=apl inline>⌷⍤0 99</source>) a.k.a. "sane indexing", i.e. select major cells
  • <syntaxhighlight lang=apl inline>⍛</source> Reverse Compose (<syntaxhighlight lang=apl inline>{(⍺⍺ ⍺) ⍵⍵ ⍵}</source> — compare with <syntaxhighlight lang=apl inline>∘</source> which is <syntaxhighlight lang=apl inline>{⍺ ⍺⍺ (⍵⍵ ⍵)}</source>

It also adds several unique additions from J and K:

  • <syntaxhighlight lang=apl inline>⍡</source> Cumulative repeat (like <syntaxhighlight lang=apl inline>⍣</source> but returns a list of iterations)
  • <syntaxhighlight lang=apl inline>⍁</source> For each diagonal (J's <syntaxhighlight lang=apl inline>/.</source>)
  • <syntaxhighlight lang=apl inline>ᐵ</source> and <syntaxhighlight lang=apl inline>ᑈ</source> Each-left and Each-right (K's <syntaxhighlight lang=apl inline>\:</source> and <syntaxhighlight lang=apl inline>/:</source>)

As of 2019, this is the only APL with a native dedicated Android app. This app wraps APL in an interface akin to that of graphic calculators.

dzaima/APL Android App

External Links

APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLdzaima/APLExtended Dyalog APLGNU APLKAPNARS2000Pometo
Historical A Programming LanguageA+ (A) ∙ APL#APL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyJellyfishK (Q, KDB+) ∙ Lang5NialRAD
Overviews Timeline of array languagesTimeline of influential array languagesFamily tree of array languages