LINUX.ORG.RU

[OCaml] Посоветуйте литературу

 


0

0

0. Что лучше изучить Haskell, OCaml, F#, Erlang и почему? 1. Посоветуйте литературу по Haskell/OCaml/F#/Erlang (русской как я понимаю в природе нет, так что на английском). Желательно без «высших материй», а что-то типа K&R. Ну и что-нибудь по связки OCaml с гуем (Tk, wxWidgets, Qt, etc.). Буду благодарен если сразу дадите ссылки для скачивания. 2. Посоветуйте IDE под Linux.

Ответ на: комментарий от hizel

Lisp-семейство не хочется брать. Не нравится синтаксически.

что объединяет эти языки

принадлежность к фп, а так ничего =)

Meerkat
() автор топика

http://alexott.net/ru/fp/books/ - список литературы по ФП, с рекомендациями в конце.

на русском есть «Введение в функциональное программирование», которое использует Caml Light для примеров.

ott ★★★★★
()

Для чего изучать, смотря по тому... То есть, цель изучения вышеперечисленного, just for fun? или, может намечаются проекты с применением?

Если с целями «саморазвития», то imho, Haskell, поскольку он в себя включает массу забавных, экспериментальных в некотором роде свойств. Для практики, видимо - Erlang.

tentaclius
()
Ответ на: комментарий от Lucky1

Haskell/OCaml/F# - это семейство ML языков, куда еще относится Standard ML и Caml Light (ныне уже заброшенный практически)

ott ★★★★★
()

Спасбо за литературу. А можно узнать впечатления об указанных языках от людей их использующих?

Meerkat
() автор топика
Ответ на: комментарий от tentaclius

> Для чего изучать, смотря по тому... То есть, цель изучения вышеперечисленного, just for fun? или, может намечаются проекты с применением?

Скорее с целью подучить нормально ФП. Раньше только ООП занимался - Smalltalk, Ruby. Теперь решил посмотреть в сторону ФП - может на него переберусь.

Meerkat
() автор топика
Ответ на: комментарий от Meerkat

По Эрлангу: Programming Erlang: Software for a Concurrent World. Точно подходит под «типа K&R». Но я бы, наверное, сначала внимание обратил большее на OCaml, а потом уж Erlang, последний действительно очень простой.

arhibot
()
Ответ на: комментарий от Meerkat

Скорее с целью подучить нормально ФП. Раньше только ООП занимался - Smalltalk, Ruby. Теперь решил посмотреть в сторону ФП - может на него переберусь.

Еще может быть интересна Scala. Там хорошо представлено и ООП, и ФП. Но лучше начинать, наверное, с хаскеля.

dave ★★★★★
()

какамл ненужен

anonymous
()
Ответ на: комментарий от anonymous

> Учи plain C, на него и перебирайся. На кой тебе тормоза всякие?

Си знаю. C него на Ruby и перебирался.

Meerkat
() автор топика
Ответ на: комментарий от anonymous

И эти люди советуют все писать на Си...

dave ★★★★★
()
Ответ на: комментарий от anonymous

> Значит незнаеш, если перебиратся захотел

Задачи системного уровня не решаю, низкого - тоже. Поэтому мощь Си просто не нужна.

И эти люди советуют все писать на Си...

Согласен, на Си все писать глупо, хотя и реально.

какамл ненужен

Почему? что в нем такого плохого?

А они и ненужны, сюрприз!

А скрипты на чем писать :) Или web? Ну а Lisp в принципе универсальный язык. В корне с Вами не согласен.

а потом уж Erlang, последний действительно очень простой.

Да? Чем проще того же OCaml?

Тогда еще и Scala до кучи.

Патологически не переношу Java, поэтому и не рассматриваю ее.

Meerkat
() автор топика
Ответ на: комментарий от Meerkat

Си это мощь и простота одновременно. В си доступно все, а для других языков еще биндинги искать надо. Си пригоден для скриптов. Для веба есть Java, эдакий кастрированный C++, и другого и не надо.

А функциональщина всякая ненужна абсолютно. Надо реальные задачи решать, которые все как одна императивные, а не изйогиваться в раскоряку и искать матанистые способы решения тривиальных задач. Функциональщики еще ничего полезного не написали за over 50 лет существования всего этого барахла. Вообще ничего. Все самое лучшее написано на Си. Какие могут быть сомнения в выборе пути?!?

anonymous
()
Ответ на: комментарий от Meerkat

1) Не корми анонимуса, он и так толстый.
2) У функционального натива проблемы с библиотеками. Лучше всех смотрится на этом фоне хаскель, но ему до того же питона, в этом отношении, еще расти.
3) Предубеждение против Java или JVM? А как относишься к CLR - F# списан с OCaml?

cab ★★★★
()
Ответ на: комментарий от Meerkat

> Патологически не переношу Java

бугага. а .net стало быть Ъ?

Rastafarra ★★★★
()

>> Что лучше изучить Haskell, OCaml, F#, Erlang и почему?

Java, потому, что ынтырпрайз.

cathode
()
Ответ на: комментарий от cab

> Предубеждение против Java или JVM? А как относишься к CLR - F# списан с OCaml?

Против CLR ничего не имею, как и против самой по себе JVM, но от последней за километр прет явой. Против самой по себе Java. Есть реализация F# под Linux? Если да, то насколько это кросс-платформенно?

Для веба есть Java, эдакий кастрированный C++, и другого и не надо.

Никогда такой глупой теории не слышал. Но лучше промолчу. Хотя мощь PureC не оспариваю

Meerkat
() автор топика
Ответ на: комментарий от Meerkat

> Против CLR ничего не имею, как и против самой по себе JVM, но от последней за километр прет явой.

лолшто?

ниасиль clojure и успокойся.

Rastafarra ★★★★
()
Ответ на: комментарий от Meerkat

Есть реализация F# под Linux? Если да, то насколько это кросс-платформенно?

F# может работать поверх mono. Правда хвостовая рекурсия реализована в mono много-много раз хуже, чем в .NET...

У меня небольшой сервер на F# вполне сносно работает на линуксе, а там используются и асинхронные вычисления, и message-passing. Это со стороны самого F#. Со стороны mono используются TCP/IP и основная библиотека типа коллекций и xml. Плюс отдельно работает логирование через log4net. Я доволен.

Уже совершенно в другом случае был косяк с хвостовой рекурсией при моделировании, но об этом я уже написал.

dave ★★★★★
()
Ответ на: комментарий от anonymous

>Си это мощь и простота одновременно. В си доступно все, а для других языков еще биндинги искать надо.

Да какая мощь Си, если даже со стеком манипулировать без костылей нельзя? :3

Waterlaz ★★★★★
()
Ответ на: комментарий от Meerkat

люблю/не люблю - это все от детских прихотей... Язык надо выбирать под задачу, и если на одном языке ее проще решить чем на другом, то надо его и использовать, а не пытаться рашпилем подравнять неподходящий язык.

ott ★★★★★
()
Ответ на: комментарий от Meerkat

По самому F# есть отличные книги:

  • Expert F# 2.0 (от самих авторов языка);
  • Programming F# (от официального тестера из той же команды).

Можно начать со второй - она проще. В принципе, иметь опыт работы с .NET необязатально, хотя желательно. Обе книги можно найти на вольных просторах интернета ;) ... или купить в амазоне.

Что касается mono, то это - просто другая реализация .NET Framework. Каноническая - от оффтопика.

dave ★★★★★
()
Ответ на: комментарий от Meerkat

А если ты про установку, то дистрибутив F# поставляется в двух вариантах: (1) .msi для винды; (2) .zip для юниксов. Просто распаковываешь, регистрируешь библиотеки и настраиваешь пути. Где-то сообщение в одном блоге было на эту тему. Кажется, автор уже отметился в этой теме :) Только под линуксом придется использовать какой-нибудь сборщик, ибо xbuild не поддерживает студийные проекты .fsproj.

p.s. Про лисп ты зря так. Там своя эстетика, особенно в схеме и кложуре.

dave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.