Ivy: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(Remove "With no looping constructs or recursion, Ivy is intended to perform computations and not for general-purpose programming." per talk)
m (Nested array language category)
 
(6 intermediate revisions by 2 users not shown)
Line 2: Line 2:
| released                = 2014
| released                = 2014
| developer                = [[wikipedia:Rob Pike|Rob Pike]]
| developer                = [[wikipedia:Rob Pike|Rob Pike]]
| latest release version  = 0.1.15 / 2022-01-25
| latest release version  = 0.3.3 / 2024-01-15
| array model              = [[flat array model|flat]]
| array model              = [[nested array model|nested]]
| index origin            = <code>) origin</code> 0 or 1
| index origin            = <code>) origin</code> 0 or 1
| function styles          = [[defined function|defined]] with <code>op</code>
| function styles          = [[defined function|defined]] with <code>op</code>
| numeric types            = rational, configurable-precision float
| numeric types            = rational, configurable-precision float, [[Complex number|complex]]
| unicode support          = full
| unicode support          = full
| file ext                = .ivy
| file ext                = .ivy
Line 13: Line 13:
| source                  = [https://github.com/robpike/ivy GitHub]
| source                  = [https://github.com/robpike/ivy GitHub]
| documentation            = [https://pkg.go.dev/robpike.io/ivy pkg.go]
| documentation            = [https://pkg.go.dev/robpike.io/ivy pkg.go]
| download                = <code>go get robpike.io/ivy</code>
| download                = <code>go install robpike.io/ivy@latest</code>
| license                  = [[wikipedia:BSD licenses|BSD]] 3-clause
| license                  = [[wikipedia:BSD licenses|BSD]] 3-clause
| influenced by            = [[NARS]] family, [[wikipedia:Go (programming language)|Go]]
| influenced by            = [[NARS]] family, [[wikipedia:Go (programming language)|Go]]
Line 22: Line 22:
Ivy allows user-defined functions (called operators), but not higher-order operators; it has only the four built-in operators [[Reduce]], [[Scan]], [[Outer Product]], and [[Inner Product]]. Functions are defined with the <code>op</code> keyword, with a declaration that matches the way the function will be used followed by <code>=</code> and a body of one or more lines (the result of the last is returned). Among APLs, this syntax most closely resembles that of [[A+]].
Ivy allows user-defined functions (called operators), but not higher-order operators; it has only the four built-in operators [[Reduce]], [[Scan]], [[Outer Product]], and [[Inner Product]]. Functions are defined with the <code>op</code> keyword, with a declaration that matches the way the function will be used followed by <code>=</code> and a body of one or more lines (the result of the last is returned). Among APLs, this syntax most closely resembles that of [[A+]].


{{APL dialects}}[[Category:Array languages]][[Category:ASCII languages]]
{{APL dialects}}[[Category:Nested array languages]][[Category:ASCII languages]]

Latest revision as of 22:44, 24 January 2024


Ivy is a calculator with APL syntax and functions developed by Rob Pike with the Go programming language (itself developed by Pike and others). Built-in functions are written with one or more ASCII characters, and use either the C-like symbols of Go or short names such as div or rot. It emphasizes high-precision computation, using exact rationals when possible and high-precision floating-point numbers otherwise.

Ivy allows user-defined functions (called operators), but not higher-order operators; it has only the four built-in operators Reduce, Scan, Outer Product, and Inner Product. Functions are defined with the op keyword, with a declaration that matches the way the function will be used followed by = and a body of one or more lines (the result of the last is returned). Among APLs, this syntax most closely resembles that of A+.


APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKapNARS2000Pometo
Historical A Programming LanguageA+ (A) ∙ APL#APL2CAPL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXExtended Dyalog APLIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyK (Goal, Klong, Q) ∙ KamilaLispLang5LilNialRADUiua
Overviews Comparison of APL dialectsTimeline of array languagesTimeline of influential array languagesFamily tree of array languages