Dzaima/APL: Difference between revisions

Jump to navigation Jump to search
238 bytes added ,  22:10, 10 September 2022
m
Text replacement - "</source>" to "</syntaxhighlight>"
No edit summary
m (Text replacement - "</source>" to "</syntaxhighlight>")
(12 intermediate revisions by 3 users not shown)
Line 7: Line 7:
| unicode support          = full
| unicode support          = full
| released                = 2018
| released                = 2018
| developer                = [https://github.com/dzaima dzaima]
| developer                = [[dzaima]]
| latest release version  = 0.1.6 / 2020-04-04
| latest release version  = 0.1.7 / 2020-05-13
| implementation language  = [[wikipedia:Java (programming language)|Java]], [[wikipedia:Processing (programming language)|Processing]]  
| implementation languages = [[wikipedia:Java (programming language)|Java]], [[wikipedia:Processing (programming language)|Processing]]  
| source                  = [https://github.com/dzaima/APL/tree/master/src/APL GitHub]
| source                  = [https://github.com/dzaima/APL GitHub]
| platforms                = JVM, Android
| platforms                = JVM, Android
| license                  = [[wikipedia:MIT License|MIT]]
| license                  = [[wikipedia:MIT License|MIT]]
| website                  = [https://github.com/dzaima/APL Github]
| documentation            = [https://github.com/dzaima/APL/blob/master/docs/chars.txt docs]
| documentation            = [https://github.com/dzaima/APL/blob/master/docs/chars.txt docs]
| influenced by            = [[Dyalog APL]], [[J]], [[K]]
| influenced by            = [[Dyalog APL]], [[J]], [[K]]
| run online              = [https://tio.run/#apl-dzaima TIO]
| run online              = [https://tio.run/#apl-dzaima TIO]
}}
}}
'''dzaima/APL''' is an implementation of APL in Java, created and maintained by Stack Exchange user [https://codegolf.stackexchange.com/users/59183/dzaima 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 [[wikipedia:Processing (programming language)|Processing]] integration.
'''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 [[wikipedia:Processing (programming language)|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:
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:


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


It also adds several unique additions from [[J]] and [[K]]:
It also adds several unique additions from [[J]] and [[K]]:


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


As of 2019, dzaima/APL is the only APL with a native dedicated Android app. This app wraps APL in an interface akin to that of graphic calculators.
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.
[[File:Dzaima-APL Andoid App.png|thumb|center|dzaima/APL Android App]]
[[File:Dzaima-APL Andoid App.png|thumb|center|dzaima/APL Android App]]
== External Links ==
== External Links ==
Line 40: Line 39:
* [https://github.com/dzaima/APL/tree/master/AndroidIDE Android App]
* [https://github.com/dzaima/APL/tree/master/AndroidIDE Android App]


{{APL dialects}}
{{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]][[Category:Leading axis languages]][[Category:Languages with tacit programming]]

Navigation menu