[ANN] efene 0.4 - a language for the erlang VM - released
Mariano Guerra
luismarianoguerra@REDACTED
Sat Apr 10 23:35:58 CEST 2010
new release of efene.
efene is a programming language that runs on the erlang virtual machine.
the idea is to provide an alternative syntax to erlang that is most
suitable for people coming from languages like Java, C, C++, C#,
Javascript.
the language is almost 100% compatible with erlang (and will be), the
compiler allows to translate an efene source file into a readable
erlang one or compile it directly to bytecode. It also adds some
syntactic sugar in some places to make some tasks easier.
changes
* if statement syntax modifies to look more C/C++ like
if Num == 1 {
io.format("is one~n")
} else if Num == 2 {
io.format("is two~n")
} else {
io.format("not one not two~n")
}
* case statement syntax modifies to look more C/C++ like
switch random.uniform(4) {
case 1:
io.format("one!~n")
break
case 2:
io.format("two!~n")
break
case 3:
io.format("three!~n")
break
else:
io.format("else~n")
break
}
* try/catch statement syntax modifies to look more C++ like
try {
make_error(Arg)
} catch throw 1 {
io.format("throw 1~n")
} catch exit 2 {
io.format("exit 2~n")
} catch error (some fancy tuple 3) {
io.format("error~n")
} else {
io.format("else~n")
}
* record syntax supported
# create record instance
R = person[firstname="Bob" lastname="Esponja" mail="bob@REDACTED"]
# modify record
R1 = person.R[firstname="Mariano" lastname="Guerra"]
# access record attribute
person.R.firstname
# record pattern matching
is_bob = fn (person[firstname="Bob"]) {
true
} (_) {
false
}
for a complete reference see the LanguageReference:
http://wiki.github.com/marianoguerra/efene/languagereference
Participate
a mailing list is available at librelist just send a mail to
efene@REDACTED to subscribe.
More information about the erlang-questions
mailing list