top | item 2037198

The Ela Programming Language

11 points| kung-fu-master | 15 years ago |code.google.com | reply

I have found very interesting functional language from russian developers community (RSDN). Short description from language site: --------------------------------------------------------------------------------- Ela is a modern programming language that runs on CLR and Mono.

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.

10 comments

order
[+] CodeMage|15 years ago|reply
Where's the documentation? Wiki's empty and the "Docs" directory in the source repository contains only "OperatorPrecedence.txt". So where can I find more about:

1. distinguishing features of Ela (i.e. "why Ela?")

2. programming in Ela

3. standard library

4. interpreter API

[+] vorov2|15 years ago|reply
Ela is a strict dynamically typed impure functional language. Haskell is a non-strict statically typed pure functional language. Only 1 of four :)

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
Looks like Haskell.
[+] skymt|15 years ago|reply
Looks a lot like Haskell. Is there any reason Haskell couldn't just be ported to the CLR?
[+] wccrawford|15 years ago|reply
It's not often I come across a new language that I can't just read by looking at it.

And that's not a good thing for the language, as far as I'm concerned.

[+] ekiru|15 years ago|reply
Why isn't that a good thing?

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.