1. Куча / Говнокод #21690

    −20

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 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, ":")).

    IPv6 и эрланг -- это как PHP и даты.

    Запостил: CHayT, 18 Ноября 2016

    Комментарии (18) RSS

    • #опердени
      Ответить
    • Что не так с "PHP" и датами?

      date("d.m.Y");
      Ответить
    • "PHP-даты" - это уже давнее тёмное прошлое. Недавно там многое чего переехало на на локали и DateTime.
      Ответить
    • Четта они копировали с Пролога, да самые полезные вещи забыли.
      Ответить
      • опять ты выходишь на связь, пиздун
        Ответить
      • > Четта они копировали с Пролога

        Там от пролога только куски синтаксиса. Иррелевантные в принципе.
        Ответить
        • Ну, потому, что плохо копировали.

          А еще у них стрелочки в неправильную сторону.
          Ответить
          • Никто ничего не копировал, языки разные, парадигмы -- разные, цели -- разные.

            Ну и вообще, пруфы в тред, где Армстронг говорил, что он копировал что-то с пролога.
            Ответить
            • > Ну и вообще, пруфы в тред, где Армстронг говорил, что он копировал что-то с пролога.

              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
              Ответить
            • https://shmat-razum.blogspot.com/2012/01/coders-at-work.html

              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, а я написал компилятор на Прологе. Затем компилятор скомпилировал самого себя и получился байт-код, который мы запустили в машину, а затем мы изменили грамматику и синтаксис и снова скомпилировали компилятор самим собой, и получился образ, который бутстрапился, короче мы взлетели. Забыли свои прологовские корни и сделали новый язык.
              Ответить
              • Спасибо, кэп. Про компилятор на прологе все в курсе. Вопрос в том, много ли семантики осталось от пролога, а ответ -- примерно нисколько. Таплы, списки и паттерн-матчинг уже к тому времени были в ML и миранде.
                Ответить
                • Так как раз речь о том, что копировали, но плохо. Лучче бы лучче копировали, тогда бы лучче получилось.
                  Ответить
                  • Внимание, риторический вопрос: зачем нужен пролог в RNC, EnodeB или MME? Что там нужно логически выводить из констрейнтов? Ответ: выводить ничего не нужно; ни зачем от там не нужен. Там нужно получать пакетики, просыпаться, чтобы покрутить FSMки и отправить пакетики, и снова засыпать. С чем Erlang справляется на четвёрку с плюсом при условии использования dialyzer, ибо это примерно то, ради чего он и был придуман.
                    Ответить
                    • Вопрос не риторический, и ответ (который не подразумевается в риторических вопросах) не правильный.
                      То, каким способом в Прологе осуществляется вычисление ортогонально причине почему это вычисление осуществляется.
                      Если FSM = finite state machine, то Пролог больше Эрланга для этого подходит например потому, что в нем можно постепенно инстанциировать данные и таким образом хранить / дорабатывать состояние вычисления.
                      Про подробности телефонии мне ничего не известно, но не вижу причин по которым язык типа Эрланга имел бы преимущество перед языком типа Пролога.

                      Все, что я вижу в Эрланге - попытка кастрировать нормальный язык, чтобы, пацанам проще было. А получилось как всегда: куча синтаксического мусора, хуже выразительность и отсутствие перспектив в развитии языка. Типичная история успешных современных языков.
                      Ответить
                      • Как там с I/O скеджулерами в прологе? С вытеснением тредов? С битоёбством? С изоляцией ошибок?

                        > нем можно постепенно инстанциировать данные и таким образом хранить / дорабатывать состояние вычисления.

                        Зачем это делать, если этого можно не делать? Зачем "постепенно инстанциировать и дорабатывать" состояние TCP соединения, условно говоря?

                        > куча синтаксического мусора, хуже выразительность

                        Эрланг это не про синтаксис и выразительность, которые там говно. Он про BEAM VM, которую файн-тюнят под конкретную предметную область десятилетия уже.

                        > Про подробности телефонии мне ничего не известно

                        Ну в этом никто не сомневался.
                        Ответить
                      • > современных языков

                        Ну это вообще телевизор с электронно-лучевой пушкой.
                        Ответить
                        • У wvxvw "современные языки" это обзывалка такая.
                          Ну типа раньше было лучше, воздух теплее, а теперь кругом одни пидарасы и один wvxvw весь в белом сидит, и ненавидит все ЯПы в мире
                          Ответить

    Добавить комментарий