Посоветуйте литературу по функциональным языкам, желательно на русском. Lisp, Scheme, OCaml, Haskell, Nemerle — начинать думаю с лиспа, а там видно будет. А вообще, неплохо бы почитать что-то обзорное, какие возможности и различия у этих языков. Также менее интересны языки, которые существуют в основном на одной платформе — например, только .NET-овские языки интересуют менее остальных. Интересна такая литература, в которой есть какие-то примеры практического использования данных языков. Вообщем, сам пока не знаю, чего хочу
18.01.10 20:45: Перенесено модератором из 'Nemerle' — VladD2
Здравствуйте, Marty, Вы писали:
M> Посоветуйте литературу по функциональным языкам, желательно на русском. Lisp, Scheme, OCaml, Haskell, Nemerle — начинать думаю с лиспа, а там видно будет. А вообще, неплохо бы почитать что-то обзорное, какие возможности и различия у этих языков. Также менее интересны языки, которые существуют в основном на одной платформе — например, только .NET-овские языки интересуют менее остальных. Интересна такая литература, в которой есть какие-то примеры практического использования данных языков. Вообщем, сам пока не знаю, чего хочу
Здравствуйте, Marty, Вы писали:
M> Здравствуйте, коллеги!
M> Посоветуйте литературу по функциональным языкам, желательно на русском. Lisp, Scheme, OCaml, Haskell, Nemerle — начинать думаю с лиспа, а там видно будет. А вообще, неплохо бы почитать что-то обзорное, какие возможности и различия у этих языков. Также менее интересны языки, которые существуют в основном на одной платформе — например, только .NET-овские языки интересуют менее остальных. Интересна такая литература, в которой есть какие-то примеры практического использования данных языков. Вообщем, сам пока не знаю, чего хочу
Что должен прочитать каждый (серьёзно), независимо от языков и предпочтений:
1) Structure and interpretation of computer programs
2) Programming Languages: Application and Interpretation
Ещё многие советуют "How to Design Programs: An Introduction to Computing and Programming", я не читал.
Здравствуйте, Marty, Вы писали:
M> Здравствуйте, коллеги!
M> Посоветуйте литературу по функциональным языкам, желательно на русском. Lisp, Scheme, OCaml, Haskell, Nemerle — начинать думаю с лиспа, а там видно будет. А вообще, неплохо бы почитать что-то обзорное, какие возможности и различия у этих языков. Также менее интересны языки, которые существуют в основном на одной платформе — например, только .NET-овские языки интересуют менее остальных. Интересна такая литература, в которой есть какие-то примеры практического использования данных языков. Вообщем, сам пока не знаю, чего хочу
Здравствуйте, Marty, Вы писали:
M> Здравствуйте, коллеги!
M> Посоветуйте литературу по функциональным языкам, желательно на русском. Lisp, Scheme, OCaml, Haskell, Nemerle — начинать думаю с лиспа, а там видно будет. А вообще, неплохо бы почитать что-то обзорное, какие возможности и различия у этих языков. Также менее интересны языки, которые существуют в основном на одной платформе — например, только .NET-овские языки интересуют менее остальных. Интересна такая литература, в которой есть какие-то примеры практического использования данных языков. Вообщем, сам пока не знаю, чего хочу
Лучше всего, как тут уже советовали, начать с SICP. Там объясняются базовые понятия, и все учат делать с нуля руками. Хотя многого в ней нет, но для начала самое то.
Если хочется лисп -- мне в свое время Successful lisp очень понравился.
По окемлу хороша Developing Applications with Objective Caml (сейчас может что и лучше появилось, давно учил).
По хаскеллу много всего. Вроде как YAHT (Yet Another Haskell Tutorial) ничего. Я учил по какому-то первому попавшемуся тьюториалу, а затем кучу разных статей читал, в которых хаскел использовался (практически всё, более-менее интересное, в последнее время делалось на хаскеле), ну и код писал, так как-то мимоходом и научился. Главное -- не пугаться монад (пока нет навыка ловкой работы с ф-иями, ты их все равно не поймешь, а когда навык появится будешь не понимать, чего это все так этой фигни боятся) и вообще -- не пугаться, когда что-то непонятно -- это нормально, при изучении чего-то действительно нового.
Кроме вышеперечисленных, есть еще интересные языки Agda (вроде у них на сайте были более-менее ничего тьюториалы) и Coq (для него рекомендую Software Foundations от Benjamin Pierce -- отлично чистит мозг и углубляет понимание об основах программирования).
Сравнивать языки я, пожалуй, не буду -- начнется. Лучше сам посмотри на каждый.
Здравствуйте, vshabanov, Вы писали:
V>По хаскеллу много всего. Вроде как YAHT (Yet Another Haskell Tutorial) ничего. Я учил по какому-то первому попавшемуся тьюториалу, а затем кучу разных статей читал, в которых хаскел использовался (практически всё, более-менее интересное, в последнее время делалось на хаскеле), ну и код писал, так как-то мимоходом и научился. Главное -- не пугаться монад (пока нет навыка ловкой работы с ф-иями, ты их все равно не поймешь, а когда навык появится будешь не понимать, чего это все так этой фигни боятся) и вообще -- не пугаться, когда что-то непонятно -- это нормально, при изучении чего-то действительно нового.
Здравствуйте, Marty, Вы писали: M>Scheme An Introduction to Scheme and its Implementation (если ссылка умрет — ищи по тайтлу — есть зеркала).
Книга, я так понял, так закончена и не была, но основные моменты описаны довольно хорошо.
Также стоит пролистать r5rs — он небольшой и написан по большей части понятным языком.
Здравствуйте, Marty, Вы писали:
M> Здравствуйте, коллеги!
M> Посоветуйте литературу по функциональным языкам, желательно на русском. Lisp, Scheme, OCaml, Haskell, Nemerle — начинать думаю с лиспа, а там видно будет. А вообще, неплохо бы почитать что-то обзорное, какие возможности и различия у этих языков.
.... M>Интересна такая литература, в которой есть какие-то примеры практического использования данных языков. Вообщем, сам пока не знаю, чего хочу
Здравствуйте, Marty, Вы писали:
M> Здравствуйте, коллеги!
M> Посоветуйте литературу по функциональным языкам, желательно на русском. Lisp, Scheme, OCaml, Haskell, Nemerle — начинать думаю с лиспа, а там видно будет. А вообще, неплохо бы почитать что-то обзорное, какие возможности и различия у этих языков. Также менее интересны языки, которые существуют в основном на одной платформе — например, только .NET-овские языки интересуют менее остальных. Интересна такая литература, в которой есть какие-то примеры практического использования данных языков. Вообщем, сам пока не знаю, чего хочу
Здравствуйте, VladD2, Вы писали:
VD>По Лиспу есть много материалов, но качественных почти нет. Все как один написаны очень тяжело и мало понятно для начинающих.
По Common Lisp'у читал Practical Common Lisp? Написано очень легко и доступно для начинающих.
Lisp is not dead. It’s just the URL that has changed: http://clojure.org
Здравствуйте, yumi, Вы писали:
Y>По Common Lisp'у читал Practical Common Lisp? Написано очень легко и доступно для начинающих.
Для начинающих — это труба. Мне с опытом немерла там почти все ясно. Но их быстрый старт даже мне показался через-чур переустроенным и плохо прокомментированным.
Потом, когда идет объяснение синтаксиса становится проще. Но начало вырубит любого кто не в теме.
Кроме того перевод поганый. Да и русский там хромает. Причем не просто опечатки, а не корректные языковые конструкции.
В общем, на безрыбье пойдет, но назвать это простым для изучения новичком я не могу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.