Наш — в смысле Эрланговсикй
efene — это язык программирования, который работает поверх виртуальной машины Erlang'а.
Идея языка заключается в том, чтобы предоставить альтернативный синтаксис Erlang'а людям, более знакомым с языками вроде Java, C, C++, C#, Javascript.
На занный момент язык почти на 100% совместим с Erlag'ом (а в идеале бует таковым), и компилятор позволяет транслировать исходные коды efene в читаемый исходник на Erlang'е. Язык также добавляет некотрый синтаксический сахар.
Примеры можно посмотреть здесь: http://marianoguerra.com.ar/efene/#examples
Ну и собственно примеры можно показать и здесь (покажу только два):
# arraycb.fn
# http://rosettacode.org/wiki/Apply_a_callback_to_an_Array
square = fn (N) {
N * N
}
# list comprehension
squares1 = fn (Numbers) {
[square(N) for N in Numbers]
}
# functional form
squares2a = fn (Numbers) {
lists.map(fn (N) { square(N) }, Numbers)
}
# functional form with lambda
squares2b = fn (Numbers) {
lists.map(fn (N) { N * N }, Numbers)
}
# no need for a function
squares3 = fn (Numbers) {
[N * N for N in Numbers]
}
run = fn () {
Numbers = [1, 3, 5, 7]
io.format("squares1 : ~p~n", [squares1(Numbers)])
io.format("squares2a: ~p~n", [squares2a(Numbers)])
io.format("squares2b: ~p~n", [squares2b(Numbers)])
io.format("squares3 : ~p~n", [squares3(Numbers)])
}
# concurrent.fn
is_zero = fn (0 FunTrue otherwise _) {
FunTrue()
} (_ _ otherwise FunFalse) {
FunFalse()
}
say = fn (Pid, Str) {
io.fwrite("~s~n" [Str])
Pid ! done
}
wait = fn (N) {
receive (done) {
is_zero(N { 0 } otherwise{ wait(N - 1) })
}
}
run = fn () {
spawn(concurrent say [self(), "Enjoy"])
spawn(concurrent say [self(), "Roseta"])
spawn(concurrent say [self(), "Code"])
wait(2)
ok
}
via
http://erlanger.ru/page/1315/efene-novyj-yazyk-programmirovaniya-poverh-erlang-vm
M>Наш — в смысле Эрланговсикй
При этом компилятор efene написан на go 0_O
Здравствуйте, Mamut, Вы писали:
M>Наш — в смысле Эрланговсикй
Меня тут Гапертон заверял, что суть go — в системе типов, а мы со своими лимбами и эрлангами в системах типов ничего не понимаем. Так-то.
Здравствуйте, Mamut, Вы писали:
M>Наш — в смысле Эрланговсикй
От названия "еФеня" его ничто не убережёт.
M>>Наш — в смысле Эрланговсикй
MC>Меня тут Гапертон заверял, что суть go — в системе типов, а мы со своими лимбами и эрлангами в системах типов ничего не понимаем. Так-то.
Для меня это чересчур высшая математика
Здравствуйте, Mamut, Вы писали:
M>Наш — в смысле Эрланговсикй
M>M>efene — это язык программирования, который работает поверх виртуальной машины Erlang'а.
M>Идея языка заключается в том, чтобы предоставить альтернативный синтаксис Erlang'а людям, более знакомым с языками вроде Java, C, C++, C#, Javascript.
M>На занный момент язык почти на 100% совместим с Erlag'ом (а в идеале бует таковым), и компилятор позволяет транслировать исходные коды efene в читаемый исходник на Erlang'е. Язык также добавляет некотрый синтаксический сахар.
M>Примеры можно посмотреть здесь: http://marianoguerra.com.ar/efene/#examples
ИМНО чисто just fun, синтаксис erlang прост как грабли.
... << RSDN@Home 1.2.0 alpha 4 rev. 1270>>
Здравствуйте, Mamut, Вы писали:
M>M># arraycb.fn
M># http://rosettacode.org/wiki/Apply_a_callback_to_an_Array
M>square = fn (N) {
M> N * N
M>}
M>
ух ты, нет точек и запятых..
а можно ещё один диалект в питоновском стиле?.
Здравствуйте, neFormal, Вы писали:
F>ух ты, нет точек и запятых..
F>а можно ещё один диалект в питоновском стиле?.
Можно конечно.
Здравствуйте, Critical Error, Вы писали:
F>>ух ты, нет точек и запятых..
F>>а можно ещё один диалект в питоновском стиле?.
CE>Можно конечно.
уииии ^_^ ты делаешь меня счастливым..
это не совсем, правда, питон, но такой стиль мне нравится больше оригинального эрланговского..