Dzaima/APL: Difference between revisions
Jump to navigation
Jump to search
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 == |
Revision as of 20:24, 28 October 2019
- 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 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:
⍮
Juxtapose ({⍺ ⍵}
)⊇
Select (⌷⍤0 99
) a.k.a. "sane indexing", i.e. select major cells⍛
Reverse compose ({(⍺⍺ ⍺) ⍵⍵ ⍵}
— compare with∘
which is{⍺ ⍺⍺ (⍵⍵ ⍵)}
It also adds several unique additions from J and K:
⍡
Cumulative repeat (like⍣
but returns a list of iterations)⍁
For each diagonal (J's/.
)ᐵ
andᑈ
Each-left and Each-right (K's\:
and/:
)
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.