}}
'''ELI'''<ref name="website">[http://fastarray.appspot.com/ ELI - official site] Hosted on Google App Engine</ref> is an interactive [[Array_programming | array programming]] computer language]] system based on [[APL (programming language) | APL]]. It has the most of functionalitiesthe functionality of ISO APL standard. In addition to classical APL, ELIand featuresalso list for non-homogeneous or non-rectangular data, complex numbers, symbols, temporal data, and control structures. A scripting file facility helpsis a useravailable to easily organize programs in a fashion similar to using #include in C, which also provides convenient data input/output. Moreover, ELI has dictionaries, tables and a basic set of [[SQL | SQL]]-like statements]]. For performance, ELI offers a compiler restricted to flat array programs.
By replacing each APL character with one or two [[ASCII]] characters, ELI retains APL’sAPL's succinct and expressive way of doing array programming, i.e. compared with [[MATLAB]] or [[Python_(programming_language) | Python]], ELI encourages a [[Dataflow_programming|dataflow style of [[Dataflow_programming | programming]] where the output of one operation feeds the input of another that results in greater productivity and clarity of code.
ELI is freeavailable andwithout availablecharge on Windows, Linux and Mac OS.
==Version 0.3==
ELI version 0.3 has beenwas released on August 10, 2015. It integrates with a cross-platform IDE, ELI Studio., The ELI Studiowhich provides a code editor with specialized functionalities to easilywrite and write/load ELI code. Moreover, threeThree additional widgets are used to monitor functions, variables, libraries and command history.
[http://fastarray.appspot.com/releasenote/Eli-v0.3.html '''New features:''']
* Semi Colon (;)
Documentation:
'''New medias:'''
* [http://fastarray.appspot.com/docs/index.html Online documentation]
* [https://www.youtube.com/channel/UCpq4XRc7A1YNbEnBRx9-jzw YouTube channel]
==Example Codecode==
A line of ELI executes from right to left as a chain of operations; anything to the right of ‘//’ is a comment.
Exclamation point (!) is an '''interval''' function. It can generate a vector of n integer from 1 to n.
<source lang="text">
!10
1 2 3 4 5 6 7 8 9 10
</source>
The execution order of ELI is from right to left, and all primitive functions have '''equal precedence'''.
<source lang="text">
5 * 2 + 10 // from right to left, 5 * (2 + 10)
60
</source>
In the next example a function <code>add</code> is declared in a short function form. Then, theThe arguments of the function can takebe either a scalar or a vector.
<source lang="text">
{add: x+y} // short function form
There are two kinds of file extensions in ELI: <code>.esf</code> and <code>.eli</code>. Both are designed for exchanging and sharing code based on different purposes.
An ELI file ends with extension <code>.esf</code> is an ELIa 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 without any debugging/ or error information left is required before you can output a script file can be created. Later, the command <code>)fload</code> iscan ablebe used to loadreload the script file back.
<source lang="text">
</source>
An ELI file ends with extension <code>.eli</code> is an ELI workspace file which contains everything in a workspace. <code>save</code> and <code>load</code> are two commands designed for workspace files.
<source lang="text">
* (Dec. 2016) ELI began to actively maintain its online language reference manual which can be found at [http://fastarray.appspot.com/docs/EliReference.html fastarray/docs]
* (Dec. 2016) The latestAn ELI primer was released
==See also==
|