The Ela Programming Language
11 points| kung-fu-master | 15 years ago |code.google.com | reply
The language is dynamically (and strongly) typed and comes with a rich and extensible type system out of box. It provides an extensive support for the functional programming paradigm including but not limited to - first class functions, first class currying and composition, list/array comprehensions, pattern matching, polymorphic variants, thunks, etc. It also provides some imperative programming features.
Ela supports both strict and non-strict evaluation but is strict by default.
The current language implementation is a light-weight and efficient interpreter written fully in C#. The interpreter was designed to be embeddable and has a clear and straightforward API. The language comes with a command line utility (Ela Console) that supports interactive mode.
[+] [-] CodeMage|15 years ago|reply
1. distinguishing features of Ela (i.e. "why Ela?")
2. programming in Ela
3. standard library
4. interpreter API
[+] [-] kung-fu-master|15 years ago|reply
I will ask author to translate it into english.
[+] [-] vorov2|15 years ago|reply
Ela is not Haskell :)
And it does feel very different really. There are certain similaries in syntax - not by coincidence of course - mostly in the way how Ela supports function definition by pattern matching. I've experimented with syntax quite a lot, starting from C-style syntax but it really appears that ML-style syntax is more expressive if you take a functional language. IMHO of course. Also except of function definition Ela syntax is probably closer to OCaml\F#.
This is a pretty early stage of the project really, I can't even say that the concept is 100% finalized. The interpreter is fully functional but Ela really lacks some documentation, guides, how-tos and standard library. TBD.
[+] [-] swah|15 years ago|reply
[+] [-] skymt|15 years ago|reply
[+] [-] wccrawford|15 years ago|reply
And that's not a good thing for the language, as far as I'm concerned.
[+] [-] ekiru|15 years ago|reply
That criterion would cause you to dismiss Haskell because it looks different from what you're used to; the example code in the link is quite similar to Haskell code.
The most useful programming languages to learn are the ones most different from what you are familiar with. One would be much better off learning ML, C, and Smalltalk than Java, C#, and Python (in terms of their effect on one's understanding of programming; not necessarily on one's ability to find work). But a programmer knowing only C is unlikely to be able to read ML or Smalltalk with much understanding, nor would a Smalltalk-only programmer understand C or ML easily or a ML-only programmer Smalltalk or C.
[+] [-] vorov2|15 years ago|reply
[+] [-] startupgrrl|15 years ago|reply
[deleted]