Content deleted Content added
Jerryobject (talk | contribs) Template:Infobox programming language parameter: add + fill. WP:LINK adds. Small WP:EoS WP:COPYEDIT: WP:PUNCTuation. |
m →File extensions: <syntaxhighlight lang="q"> |
||
(10 intermediate revisions by 8 users not shown) | |||
Line 1:
{{
{{COI|date=April 2017}}
{{
{{
}}
{{Infobox programming language
Line 26:
}}
'''ELI'''<ref name="website">
By replacing each [[APL syntax and symbols|APL character]] with one or two [[ASCII]] characters, ELI retains APL's succinct and expressive way of array programming compared with [[MATLAB]] or [[Python (programming language)|Python]], ELI encourages a [[dataflow programming]] style, where the output of one operation feeds the input of another.
ELI is available without charge, as [[freeware]], on [[Windows]], [[Linux]], and [[macOS]].
==Version 0.3==
ELI version 0.3, described as a stable release, was released on August 10, 2015. It integrates with a cross-platform IDE, ELI Studio, which provides a code editor with specialized functions to write and load ELI code. Three added widgets are used to monitor functions, variables, libraries and command history.
Version 0.3 adds several new features.<ref>{{cite web |url=https://fastarray.appspot.com/releasenote/Eli-v0.3.html |title=Overview |last=Chen |first=Hanfeng |date=2015 |website=ELI, a System for Programming with Arrays |publisher=Fastarray.appspot.com |access-date=26 February 2018}}</ref>
* Like: string match
Line 45 ⟶ 44:
* File handle: []open, []close, []write, and []get
* Semicolon (;)
* [https://fastarray.appspot.com/docs/ Online documentation]▼
* [https://www.youtube.com/channel/UCpq4XRc7A1YNbEnBRx9-jzw YouTube channel]▼
==Example code==
Line 54 ⟶ 49:
Exclamation point (!) is an interval function. It can generate a vector of n integer from 1 to n.
<
!10
1 2 3 4 5 6 7 8 9 10
</syntaxhighlight>
The execution order of ELI is from right to left, and all primitive functions have equal precedence.
<
5 * 2 + 10 // from right to left, 5 * (2 + 10)
60
</syntaxhighlight>
In the next example a function <code>add</code> is declared in a short function form. The arguments of the function can be either a scalar or a vector.
<
{add: x+y} // short function form
add
Line 71 ⟶ 66:
1 add !10 // 1+(1..10)
2 3 4 5 6 7 8 9 10 11
</syntaxhighlight>
The <code>$</code> rotation operator returns the reverse order of a vector.
<
$!10 // reverse
10 9 8 7 6 5 4 3 2 1
</syntaxhighlight>
A 2-by-3 matrix (or higher dimension array, e.g., <code>2 3 4#!24</code>) can be generated by <code>#</code> with left argument <code>2 3</code>.
<
2 3#!6 // 2 dimension array (matrix)
1 2 3
4 5 6
</syntaxhighlight>
In first line below the <code>x</code> is assigned with a vector from 1 to 20. Then, <code>1 = 2|x</code> returns odd number <code>True</code> and even number <code>False</code>. The <code>/</code> is a primitive function for compression which '''picks up''' the value in <code>x</code> corresponding to the <code>True</code> values in its left argument.
<
x <- !20 // 1..20
x
Line 90 ⟶ 85:
(1 = 2|x) / x // get odd numbers from x
1 3 5 7 9 11 13 15 17 19
</syntaxhighlight>
==File extensions==
Line 98 ⟶ 93:
An ELI file with extension <code>.esf</code> is a script file which contains all methods and data. A simple way to create a script file is using the command <code>)out</code>. However, a clean workspace with no debugging or error information left is needed before a script file can be created. Later the command <code>)fload</code> can be used to reload the script file.
<
)out MyScript
)lib
Line 104 ⟶ 99:
)fload MyScript
saved 2017.02.17 10:23:55 (gmt-5)
</syntaxhighlight>
An ELI file with extension <code>.eli</code> is an ELI workspace file which contains everything in a workspace. <code>save</code> and <code>load</code> are commands for workspace files.
<
)save MyWorkspace
)load MyWorkspace
saved 2017.02.17 10:57:19 (gmt-5)
</syntaxhighlight>
==References==
{{Reflist}}
==External links==
* {{Official website|fastarray.appspot.com}}
▲* [https://fastarray.appspot.com/docs/ Online documentation]{{Dead link|date=December 2019 |bot=InternetArchiveBot |fix-attempted=yes}}
▲* [https://www.youtube.com/channel/UCpq4XRc7A1YNbEnBRx9-jzw YouTube channel]
{{APL programming language}}
|