

Ela Programming Language - kung-fu-master
http://code.google.com/p/elalang/
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.<p>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.<p>Ela supports both strict and non-strict evaluation but is strict by default.<p>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
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

~~~
kung-fu-master
There is article about language but it's only in russian:
<http://rsdn.ru/article/dotnet/ElaDevelopment.xml>

I will ask author to translate it into english.

------
vorov2
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
Looks like Haskell.

~~~
skymt
Looks a lot like Haskell. Is there any reason Haskell couldn't just be ported
to the CLR?

~~~
kung-fu-master
[http://www.haskell.org/haskellwiki/GHC:FAQ#Why_isn.27t_GHC_a...](http://www.haskell.org/haskellwiki/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F)

------
wccrawford
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
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.

~~~
nxn
Yes, I completely agree with this. I don't see much advantage in knowing
languages that all look and behave very similarly to each other. Why should
the only reasonable choice be no choice at all? Though, I suppose, that's
probably saying too much.

On a side note, and perhaps I'm biased in believing this, but I find the given
Haskell "expression" like syntax to be much easier to understand than reading
imperative code. Of course, you have to know some fundamentals behind
functional programming before it starts making much sense, but once that
ground work is there, the experience of reading other people's code is quite
enjoyable. To me, it just seems like the code is more concerned with the
problem it's trying to solve than battling the nature of the machine that it
is running on.

------
vorov2
I have added some documentation to WIKI:
<http://code.google.com/p/elalang/wiki/ElaOverview1>
<http://code.google.com/p/elalang/wiki/GettingStarted>

