Lang5 is a stack-based APL influenced language written by Bernd Ulmann. Lang5 draws features from both APL and Forth, and uses those together to create its own array based system. Lang5 has not undergone any major changes since 2013.
Lang5's initial release was in 2010. It was created as an open source APL-style language with the goal of removing unicode symbols while providing high portability.
Lang5's last major update (as of the most recent update to this article) was in November 2020.
Lang5 has many major departures from the APL tradition: Most notably, it uses keywords for primitive functions, and uses reserved words for control flow and looping constructs.
Lang5 also allows dressing, a method of assigning simplistic type annotations to values. A dressed value is treated as a different type from the same value without the dressing. Complex numbers, matrices, polar coordinate tuples, sets and vectors are implemented in Lang5 using dressing. It allows simplistic yet effective type checking in Lang5, allowing early error prevention.
|APL dialects |
|Maintained||APL+Win ∙ APL2 ∙ APL64 ∙ APL\iv ∙ Aplette ∙ April ∙ Co-dfns ∙ Dyalog APL ∙ dzaima/APL ∙ Extended Dyalog APL ∙ GNU APL ∙ KAP ∙ NARS2000 ∙ Pometo|
|Historical||A Programming Language ∙ A+ (A) ∙ APL# ∙ APL\360 ∙ APL/700 ∙ APL\1130 ∙ APL\3000 ∙ APL.68000 ∙ APL*PLUS ∙ APL.jl ∙ APL.SV ∙ APLX ∙ 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 ∙ Jellyfish ∙ K (Q, KDB+) ∙ Lang5 ∙ Nial ∙ RAD|
|Overviews||Timeline of array languages ∙ Timeline of influential array languages ∙ Family tree of array languages|