efene — наш ответ golang'у
От: Mamut Швеция http://dmitriid.com
Дата: 12.01.10 16:22
Оценка: 28 (5)
Наш — в смысле Эрланговсикй

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


dmitriid.comGitHubLinkedIn
Re: efene — наш ответ golang'у
От: Mamut Швеция http://dmitriid.com
Дата: 12.01.10 16:24
Оценка: :))) :)
M>Наш — в смысле Эрланговсикй

При этом компилятор efene написан на go 0_O


dmitriid.comGitHubLinkedIn
Re: efene — наш ответ golang'у
От: Mr.Cat  
Дата: 12.01.10 17:03
Оценка:
Здравствуйте, Mamut, Вы писали:
M>Наш — в смысле Эрланговсикй
Меня тут Гапертон заверял, что суть go — в системе типов, а мы со своими лимбами и эрлангами в системах типов ничего не понимаем. Так-то.
Re: efene — наш ответ golang'у
От: MigMit Россия http://migmit.vox.com
Дата: 12.01.10 21:56
Оценка: +1 :)
Здравствуйте, Mamut, Вы писали:

M>Наш — в смысле Эрланговсикй


От названия "еФеня" его ничто не убережёт.
Re[2]: efene — наш ответ golang'у
От: Mamut Швеция http://dmitriid.com
Дата: 13.01.10 07:29
Оценка:
M>>Наш — в смысле Эрланговсикй
MC>Меня тут Гапертон заверял, что суть go — в системе типов, а мы со своими лимбами и эрлангами в системах типов ничего не понимаем. Так-то.

Для меня это чересчур высшая математика


dmitriid.comGitHubLinkedIn
Re: efene — наш ответ golang'у
От: cadet354 Россия
Дата: 13.01.10 07:42
Оценка: +1
Здравствуйте, 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>>
Re: efene — наш ответ golang'у
От: neFormal Россия  
Дата: 14.01.10 12:21
Оценка:
Здравствуйте, 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>


ух ты, нет точек и запятых..
а можно ещё один диалект в питоновском стиле?.
...coding for chaos...
Re[2]: efene — наш ответ golang'у
От: Critical Error ICQ: 123736611
Дата: 20.01.10 02:34
Оценка: 6 (1)
Здравствуйте, neFormal, Вы писали:

F>ух ты, нет точек и запятых..

F>а можно ещё один диалект в питоновском стиле?.

Можно конечно.
Re[3]: efene — наш ответ golang'у
От: neFormal Россия  
Дата: 20.01.10 06:23
Оценка:
Здравствуйте, Critical Error, Вы писали:

F>>ух ты, нет точек и запятых..

F>>а можно ещё один диалект в питоновском стиле?.
CE>Можно конечно.

уииии ^_^ ты делаешь меня счастливым..
это не совсем, правда, питон, но такой стиль мне нравится больше оригинального эрланговского..
...coding for chaos...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.