3,038
edits
Miraheze>Adám Brudzewsky No edit summary |
(Big ints in infobox) |
||
(36 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox array language | {{DISPLAYTITLE:dzaima/APL}}{{Infobox array language | ||
| title = dzaima/APL | | title = dzaima/APL | ||
| array model = [[nested array model|nested]] or [[flat array model|flat]] | | array model = [[nested array model|nested]] or [[flat array model|flat]] | ||
| index origin = 0 or 1 | | index origin = 0 or 1 | ||
| function styles = [[dfn]], [[tacit]] | | function styles = [[dfn]], [[tacit]] | ||
| numeric types = 64-bit float | | numeric types = 64-bit float, arbitrary-precision integer | ||
| unicode support = full | | unicode support = full (as UTF-16) | ||
| released = 2018 | | released = 2018 | ||
| developer = [ | | developer = [[dzaima]] | ||
| latest release version = 0.1. | | latest release version = 0.1.7 / 2020-05-13 | ||
| implementation languages = [https:// | | implementation languages = [[wikipedia:Java (programming language)|Java]], [[wikipedia:Processing (programming language)|Processing]] | ||
| source = [https://github.com/dzaima/APL GitHub] | |||
| platforms = JVM, Android | | platforms = JVM, Android | ||
| license = [ | | license = [[wikipedia:MIT License|MIT]] | ||
| 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]] | ||
| run online = [https://tio.run/#apl-dzaima TIO] | |||
}} | }} | ||
'''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: | |||
* <syntaxhighlight lang=apl inline>⍮</syntaxhighlight> [[Pair]] (<syntaxhighlight lang=apl inline>{⍺ ⍵}</syntaxhighlight>) | |||
* <syntaxhighlight lang=apl inline>⊇</syntaxhighlight> [[Select]] (<syntaxhighlight lang=apl inline>⌷⍤0 99</syntaxhighlight>) a.k.a. "sane indexing", i.e. select major cells | |||
* <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]]: | ||
* <syntaxhighlight lang=apl inline>⍡</syntaxhighlight> Cumulative repeat (like <syntaxhighlight lang=apl inline>⍣</syntaxhighlight> but returns a list of iterations) | |||
* <syntaxhighlight lang=apl inline>⍁</syntaxhighlight> For each diagonal (J's <syntaxhighlight lang=apl inline>/.</syntaxhighlight>) | |||
* <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, 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]] | |||
== External Links == | == External Links == | ||
Line 29: | Line 39: | ||
* [https://github.com/dzaima/APL/tree/master/AndroidIDE Android App] | * [https://github.com/dzaima/APL/tree/master/AndroidIDE Android App] | ||
{{APL | {{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]][[Category:Leading axis languages]][[Category:Languages with tacit programming]] |