Erlang - мегаязык

Тема в разделе "WASM.HEAP", создана пользователем cupuyc, 19 фев 2011.

  1. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Многие на форуме хвалят Lisp. В силу обстоятельств я начал изучать Erlang. В принципе, они все очень похожи: Erlang, Lisp, Haskell. Кто что думает о функциональных языках?
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Erlang - круто, да. А что за List, лол? Может - Lisp?
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    List - незнакомый мне язык. К функциональным языкам отношение хорошее, но без фанатизма. Чистая функциональщина мне не нравится, предпочитаю сам решать какую парадигму использовать.
     
  4. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    1. Думаю, что ценность функционального программирования для решения не-научных задач сильно преувеличена.

    2. Думаю, что на практике функционального программирования как парадигмы в чистом виде не существует, и любой большой проект на функциональном языке будет представлять собой нечто императивное/объектно-ориентированное с некоторыми вкраплениями ФП.

    3. Думаю, что идеи функционального программирования чем дальше - тем больше будут ассимилироваться в не_функциональных языках (С++0x, Python, итд.) где сейчас имеются их зачатки.

    4. Думаю, что Erlang не стоит мешать в одну кучу с Хаскелем, Лиспом, Окамл-ом, итд, т.к. главная его "фишка" - это параллельные вычисления, а функциональность является лишь её побочным эффектом.
     
  5. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    функциональное программирование хорошо тем что там есть чистые функции - их проще тестировать.
    также есть некоторое повышение читаемости из за алгоритмов над последовательностями (всяких map и т.п)

    а функциональщина в чистом виде - миф. global state можно пытаться игнорировать, но оно существует и никуда не денется
     
  6. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Опечатка, конечно же lisp.

    А есть ли для эрланга какая-нибудь удобная среда разработки? А то через putty из под линуховской консоли в vim'e уж очень непривычно и неудобно. Хотелось бы работать с проектами в нормальной виндовой среде разработки со всякими go to declaration, go to definition, с подсветкой синтаксиса. Проект лежит на линуховском серваке, но папку с проектом можно смонтировать как сетевой диск. Сейчас хочу хорошую сред разработки для себя подобрать.

    В эрланге меня поразила такая фича:
    Код (Text):
    1. fact(0) -> 1;
    2. fact(N) -> N * fact(N - 1).
    3. ...
    4. fact(10000000).
    И ведь вычисляет, никакого переполнения!
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.242
    я считаю, вообще функциональные решения хороши для небольших проектов, а когда проект разрастается, то программисты обычно пытаются эмулировать объектно-ориентированность с помощью средств функционального языка... но это так, имхо основанное на собственном опыте... лисп ненавижу вообще, язык может и хороший, и хорошо продуманный, но такой синтаксис у него тошнотный..

    зависит от реализации, есть еще куча языков, которые в состоянии работать с числами бесконечной разрядности... ключевым фактором здесь является время вычисления...
     
  8. tid

    tid Member

    Публикаций:
    0
    Регистрация:
    2 дек 2010
    Сообщения:
    57
    а еще быстрая сортировка:
    qsort([]) -> [];
    qsort([H|T]) -> qsort([X || X <-T, X<H]) ++ [H] ++ qsort([X || X<-T, X>=H]).
    на Си так быстро не написать :lol:
     
  9. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Rel
    "Дохрена тупых идиотских скобок"?
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.242
    да-да)))

    и че?))) на эрланге не написать дров например))) эрланг, насколько я помню, не такой расширяемый как руби например))) каждый язык предназначен для своего, не надо разводить холивар)))
     
  11. tid

    tid Member

    Публикаций:
    0
    Регистрация:
    2 дек 2010
    Сообщения:
    57
    Rel
    да, без священной войны, меня просто поразила лаконичность этого языка. да, на нем дров не написать. да, каждый язык предназначен для своего.
     
  12. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    А теперь тоже самое перепишите "in place". Получим код не менее муторный чем на С.
     
  13. tid

    tid Member

    Публикаций:
    0
    Регистрация:
    2 дек 2010
    Сообщения:
    57
    katrus
    что значит переписать "in place"?
    in place - переводится как на месте, я на месте и написал.
     
  14. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Ваш quicksort работает над списком, при этом порождая временные списки в буквальном смысле направо и налево. Вот попробуйте тоже самое непосредственно над входным массивом.
     
  15. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Мне кажется, что функциональные языки как-раз таки в лучшей степени подходят для написание подобного софта. Уже на уровне самого языка продумана работа с процессами, событиями, синхронизация. Помню как-то NDIS фильтр писал. Вот уж действительно гемор. Вроде всё просто, понятно. Но когда начинаешь реализовывать асинхронную обработку сообщений начинается какая-то задница.
     
  16. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.242
    дело не в функциональности...
     
  17. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Вот-вот, потому и будет написано не быстро, но зато работать будет очень быстро.
     
  18. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Booster, не совсем Вас понял. То есть Вы утверждаете, что эрланговский квик сорт будет работать быстрее сишного?
     
  19. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    Одно с другим тесно связано. Механизм синхронизации процессов в эрланге - весьма продуманная вещь.
     
  20. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    cupuyc
    Как в принципе такое может быть? ^)

    В .Net он тоже продуман. ^)