ELI (programming language): Difference between revisions

Content deleted Content added
Wukefe (talk | contribs)
No edit summary
Yobot (talk | contribs)
m WP:CHECKWIKI error fixes + other fixes using AWB (9918)
Line 1:
{{Infobox programming language
|name = ELI<ref name="vector">
[[http://archive.vector.org.uk/art10501180 ELI: a simple system for array programming]]</ref>
|logo =
|paradigm = [[array programming|array]]
|year = 2011
|designer = Wai-Mee Ching
|developer = Rapidsoft <ref name="fastarray">[[http://fastarray.appspot.com/default.html ELI - official site]]</ref> (Hanfeng Chen)
|latest release version = 0.2
|latest release date = November 30, 2013
|typing = [[dynamic typing|dynamic]]
|implementations = C++
Line 17:
'''ELI''' is an interactive array programming language system based on APL. It has the most of functionalities of ISO APL standard. In addition to classical APL, ELI features list for non-homogeneous or non-rectangular data, complex numbers, symbols, temporal data, and control structures. A scripting file facility helps a user 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-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’s succinct and expressive way of doing array programming, i.e. compared with MATLAB or Python, ELI encourages a dataflow style of programming where the output of one operation feeds the input of another that results in greater productivity and clarity of code.
 
ELI is free and available on Windows, Linux and Mac OS. The following is a sample to illustrate the flavor of the language which incidentally shows that ELI is easy to learn and free of unnecessary syntactic clutters. A line of ELI executes from right to left as a chain of operations; anything to the right of ‘//’ is a comment.
Line 67:
14 46 22 5 39
+\(w<50)/w //partial sums of the vector above
14 60 82 87 126
 
$_3+!12 //reverse of _3 adds to 1..12