Dzaima/APL: Difference between revisions
Jump to navigation
Jump to search
no edit summary
Miraheze>Adám Brudzewsky No edit summary |
Miraheze>Adám Brudzewsky No edit summary |
||
Line 14: | Line 14: | ||
| website = [https://github.com/dzaima/APL Github] | | 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]] | | influenced by = [[Dyalog APL]], [[J]], [[K]] | ||
}} | }} | ||
:''For technical reasons, this page is named "Dzaima/APL". The actual name of the implementation is "dzaima/APL".'' | :''For technical reasons, this page is named "Dzaima/APL". The actual name of the implementation is "dzaima/APL".'' | ||
'''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. It also includes [https://en.wikipedia.org/wiki/Processing_(programming_language) Processing] integration. | '''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 [https://en.wikipedia.org/wiki/Processing_(programming_language) Processing] integration. | ||
[[File:Dzaima-APL Andoid App.png|thumb|left|dzaima/APL Android App]] | dzaima/APL adds many new primitives and extensions to existing primitives, most taken from or inspired by Adám Brudzewsky's experimental [https://github.com/abrudz/dyalog-apl-extended#content Extended Dyalog APL], for example: | ||
* <code>⍮</code> Juxtapose (<code>{⍺ ⍵}</code>) | |||
* <code>⊇</code> Select (<code>⌷⍤0 99</code>) a.k.a. "sane indexing", i.e. select major cells | |||
* <code>⍛</code> Reverse compose (<code>{(⍺⍺ ⍺) ⍵⍵ ⍵}</code> — compare with <code>∘</code> which is <code>{⍺ ⍺⍺ (⍵⍵ ⍵)}</code> | |||
It also adds several unique additions from [[J]] and [[K]]: | |||
* <code>⍡</code> Cumulative repeat (like <code>⍣</code> but returns a list of iterations) | |||
* <code>⍁</code> For each diagonal (J's <code>/.</code>) | |||
* <code>ᐵ</code> and <code>ᑈ</code> Each-left and Each-right (K's <code>\:</code> and <code>/:</code>) | |||
[[File:Dzaima-APL Andoid App.png|thumb|left|dzaima/APL Android App]] 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. | |||
== External Links == | == External Links == |