TinyAPL: Difference between revisions
(Change release year from 2023 to 2024, when it first ran as an interpreter) |
(io 0) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
| logo = [[file:tinyapl_logo.png]] | | logo = [[file:tinyapl_logo.png]] | ||
| array model = [[nested array model|nested]] | | array model = [[nested array model|nested]] | ||
| index origin = | | index origin = 0 | ||
| function styles = [[dfn]], [[tacit]] | | function styles = [[dfn]], [[tacit]] | ||
| numeric types = [[complex]] float | | numeric types = [[complex]] float | ||
Line 8: | Line 8: | ||
| released = 2024 | | released = 2024 | ||
| developer = Madeline Vergani | | developer = Madeline Vergani | ||
| latest release version = 0. | | latest release version = 0.10.0.1 / 2024 | ||
| implementation language = [[wikipedia:Haskell|Haskell]] | | implementation language = [[wikipedia:Haskell|Haskell]] | ||
| source = [https://github.com/RubenVerg/tinyapl Github] | | source = [https://github.com/RubenVerg/tinyapl Github] | ||
Line 16: | Line 16: | ||
| download = [https://github.com/RubenVerg/tinyapl/releases/ Releases] | | download = [https://github.com/RubenVerg/tinyapl/releases/ Releases] | ||
| documentation = (click menu icon) | | documentation = (click menu icon) | ||
| influenced by = [[Dyalog APL]], [[BQN]], [[ | | influenced by = [[Dyalog APL]], [[BQN]], [[Extended Dyalog APL]], [[J]], [[Kap]] | ||
| run online = [https://tinyapl.rubenverg.com/run/latest Web REPL (latest)] | | run online = [https://tinyapl.rubenverg.com/run/latest Web REPL (latest)] | ||
}} | }} | ||
Line 22: | Line 22: | ||
'''TinyAPL''' is an APL variant developed by Madeline Vergani, which supports a large number of primitives while maintaining a small source code size. It breaks [[backwards compatibility]] with existing APLs in major ways: for example, [[function axis]] and last-axis counterparts of first-axis primitives are removed in favor of [[leading axis theory]], and [[array notation]] is provided rather than [[strand notation]]. In order to give the language a [[wikipedia:context-free grammar|context-free grammar]], a spelling convention with capital letters for functions and underscores for operators is used (matching [[BQN]]'s convention, but like [[APL\iv]], spellings can't be varied, so that the spelling always matches the type). Similarly [[dop]]s are written with underscores next to braces. | '''TinyAPL''' is an APL variant developed by Madeline Vergani, which supports a large number of primitives while maintaining a small source code size. It breaks [[backwards compatibility]] with existing APLs in major ways: for example, [[function axis]] and last-axis counterparts of first-axis primitives are removed in favor of [[leading axis theory]], and [[array notation]] is provided rather than [[strand notation]]. In order to give the language a [[wikipedia:context-free grammar|context-free grammar]], a spelling convention with capital letters for functions and underscores for operators is used (matching [[BQN]]'s convention, but like [[APL\iv]], spellings can't be varied, so that the spelling always matches the type). Similarly [[dop]]s are written with underscores next to braces. | ||
TinyAPL adds many primitives for mathematics, array manipulation, and [[tacit]] programming. It also uses an explicit syntax for function and operator [[train]]s, rather than the invisible notation used in [[J]] and [[Dyalog APL]]. It supports [[character arithmetic]]. | TinyAPL adds many primitives for mathematics, array manipulation, and [[tacit]] programming. It also uses an explicit syntax for function and operator [[train]]s, rather than the invisible notation used in [[J]] and [[Dyalog APL]]. It supports [[character arithmetic]]. It also has support for [[first-class function]]s and operators, and [[namespace]]s. | ||
== External links == | == External links == | ||
* [https://blog.rubenverg.com/?tag=tinyapl TinyAPL] blog post series | * [https://blog.rubenverg.com/?tag=tinyapl TinyAPL] blog post series | ||
{{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]][[Category:Leading axis languages]] | {{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]][[Category:Leading axis languages]][[Category:Languages with first-class functions]][[Category:Languages with tacit programming]] |
Latest revision as of 20:55, 27 October 2024
TinyAPL is an APL variant developed by Madeline Vergani, which supports a large number of primitives while maintaining a small source code size. It breaks backwards compatibility with existing APLs in major ways: for example, function axis and last-axis counterparts of first-axis primitives are removed in favor of leading axis theory, and array notation is provided rather than strand notation. In order to give the language a context-free grammar, a spelling convention with capital letters for functions and underscores for operators is used (matching BQN's convention, but like APL\iv, spellings can't be varied, so that the spelling always matches the type). Similarly dops are written with underscores next to braces.
TinyAPL adds many primitives for mathematics, array manipulation, and tacit programming. It also uses an explicit syntax for function and operator trains, rather than the invisible notation used in J and Dyalog APL. It supports character arithmetic. It also has support for first-class functions and operators, and namespaces.
External links
- TinyAPL blog post series
APL dialects [edit] | |
---|---|
Maintained | APL+Win ∙ APL2 ∙ APL64 ∙ APL\iv ∙ Aplette ∙ April ∙ Co-dfns ∙ Dyalog APL ∙ Dyalog APL Vision ∙ dzaima/APL ∙ GNU APL ∙ Kap ∙ NARS2000 ∙ Pometo ∙ TinyAPL |
Historical | A Programming Language ∙ A+ (A) ∙ APL# ∙ APL2C ∙ APL\360 ∙ APL/700 ∙ APL\1130 ∙ APL\3000 ∙ APL.68000 ∙ APL*PLUS ∙ APL.jl ∙ APL.SV ∙ APLX ∙ Extended Dyalog APL ∙ Iverson notation ∙ IVSYS/7090 ∙ NARS ∙ ngn/apl ∙ openAPL ∙ Operators and Functions ∙ PAT ∙ Rowan ∙ SAX ∙ SHARP APL ∙ Rationalized APL ∙ VisualAPL (APLNext) ∙ VS APL ∙ York APL |
Derivatives | AHPL ∙ BQN ∙ CoSy ∙ ELI ∙ Glee ∙ I ∙ Ivy ∙ J ∙ Jelly ∙ K (Goal, Klong, Q) ∙ KamilaLisp ∙ Lang5 ∙ Lil ∙ Nial ∙ RAD ∙ Uiua |
Overviews | Comparison of APL dialects ∙ Timeline of array languages ∙ Timeline of influential array languages ∙ Family tree of array languages |