- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
expand_ipv6(Addr) ->
AbbrevAddr = case string:str(Addr, "::") of
0 -> Addr;
_ ->
RemainBlocks = 8 - length(string:tokens(Addr, ":")),
re:replace(Addr,"::",string:copies(":0", RemainBlocks) ++ ":", [{return,list}])
end,
lists:foldl(fun(Block, Acc) ->
Start = case Acc of
[] -> "";
_ -> ":"
end,
RemainZeroes = 4 - length(Block),
ExpandedBlock = Start ++ string:copies("0", RemainZeroes) ++ Block,
Acc ++ ExpandedBlock
end, [], string:tokens(AbbrevAddr, ":")).
date("d.m.Y");
Там от пролога только куски синтаксиса. Иррелевантные в принципе.
А еще у них стрелочки в неправильную сторону.
Ну и вообще, пруфы в тред, где Армстронг говорил, что он копировал что-то с пролога.
Siebel> What languages influenced the design of Erlang?
Armstrong> Prolog. Well, it grew out of Prolog, obviously.
Siebel> There's not a lot of Prolog discernible in it today.
Armstrong> Well, unification--pattern matching, that comes directly from Prolog. And the kind of data structures. Tuples and lists have slightly different syntax in Prolog, but they're there.
-- Peter Siebel, Coders at Work
Joe Armstrong, создатель Erlang, даёт рецепт бутстрапа:
So then Mike did the virtual machine in C and I did the compiler in Prolog. Then the compiler compiled itself and produced byte-code and you put it in the machine and then we changed the grammar and the syntax and compiled the compiler in itself and came out with an image that would bootstrap and then we’re flying. We’ve lost our Prolog roots and we’re now a language.
перевод:
И тогда Майк сделал виртуальную машину на C, а я написал компилятор на Прологе. Затем компилятор скомпилировал самого себя и получился байт-код, который мы запустили в машину, а затем мы изменили грамматику и синтаксис и снова скомпилировали компилятор самим собой, и получился образ, который бутстрапился, короче мы взлетели. Забыли свои прологовские корни и сделали новый язык.
То, каким способом в Прологе осуществляется вычисление ортогонально причине почему это вычисление осуществляется.
Если FSM = finite state machine, то Пролог больше Эрланга для этого подходит например потому, что в нем можно постепенно инстанциировать данные и таким образом хранить / дорабатывать состояние вычисления.
Про подробности телефонии мне ничего не известно, но не вижу причин по которым язык типа Эрланга имел бы преимущество перед языком типа Пролога.
Все, что я вижу в Эрланге - попытка кастрировать нормальный язык, чтобы, пацанам проще было. А получилось как всегда: куча синтаксического мусора, хуже выразительность и отсутствие перспектив в развитии языка. Типичная история успешных современных языков.
> нем можно постепенно инстанциировать данные и таким образом хранить / дорабатывать состояние вычисления.
Зачем это делать, если этого можно не делать? Зачем "постепенно инстанциировать и дорабатывать" состояние TCP соединения, условно говоря?
> куча синтаксического мусора, хуже выразительность
Эрланг это не про синтаксис и выразительность, которые там говно. Он про BEAM VM, которую файн-тюнят под конкретную предметную область десятилетия уже.
> Про подробности телефонии мне ничего не известно
Ну в этом никто не сомневался.
Ну это вообще телевизор с электронно-лучевой пушкой.
Ну типа раньше было лучше, воздух теплее, а теперь кругом одни пидарасы и один wvxvw весь в белом сидит, и ненавидит все ЯПы в мире