Я ищу книгу, которая объясняет функциональное программирование доступным способом. Также я бы предпочел тот, который не слишком скучен и не использует эзотерический язык.
В идеале он будет использовать примеры, демонстрирующие ситуации, когда функциональное программирование приводит к более элегантным или более простым решениям, чем императивные подходы.
Я имею достаточный опыт программирования, но не знаю функционального программирования. Спасибо за любые предложения
books
functional-programming
Antonio2011a
источник
источник
Ответы:
Я бы посоветовал начать с « Маленького интриганки » (и, возможно, после этого «Разумного интриганки »).
Если вы думаете, что Схема слишком эзотерична, или вам нравится Javascript, Дуглас Крокфорд перевел многие из упражнений на Javascript: http://javascript.crockford.com/little.html
Если вам нравится C #, " Функциональное программирование в реальном мире " Томаса Петричека было бы отличным местом для начала. Это также служит хорошим введением в F #.
источник
Если вам нравятся статически типизированные языки и [скобки]:
Haskell, хотя и довольно сложный в парадигме программирования, имеет одно из лучших введений в язык, который я когда-либо видел, в форме «Изучу тебя на Haskell для большого блага!». Бланк книги необязателен, так как веб-сайт бесплатный, но это один из авторов, который меня совершенно не впечатлил. Реальный мир Haskell хорош, но на самом деле его лучше воспринимать как продолжение [Learn..Good]. RWH также свободен с дополнительным бумажным совершенством.
Из Haskell вы можете легко перейти на другие варианты ML, такие как F # или OCaml, оба из которых более широко используются. Для истекающего кровью АТС .
Если вам нравится (и скобки Dynamic_Typing):
Схема является более функционально ориентированной из двух основных диалектов Лисп, меньше и чище, чем Common Lisp, но менее широко используется в промышленности. Мне лично нравится «Структура и интерпретация компьютерных программ», но это довольно трудоемкая книга, которую трудно проглотить, и она сделает вас лучшим программистом.
Если вы предпочитаете Common Lisp, то Практический Common Lisp или Land of Lisp кажутся хорошими инвестициями, первый - бесплатный онлайн, а второй - довольно дешевый и, что более важно (для некоторых), ориентирован на игру. Он более мощный, но менее чистый, чем Схема.
Из них вы можете расширить в Clojure, если хотите. Это Lisp для JVM, так что его легче развернуть и лучше защитить от обвинений в «академичности». Clojure может развертываться в .NET и переходить на Javascript. Для нативного .NET попробуйте IronScheme .
Вы также можете разделить разницу и выучить оба вида одновременно с помощью « Напишите себе схему» за 48 часов в Хаскеле.
источник
Мой любимый источник - Нежное Введение в Haskell . Я читаю часть « Изучаю тебя на Haskell» и « Реальном мире Хаскелла» О'Рейли и « Ремесла функционального программирования» Саймона Томпсона , но, честно говоря, добиваюсь большего успеха благодаря мягкому вступлению. Это похоже на K & R на Haskell: тонкий документ, созданный создателями языка. Не многословно, не покровительственно, но и не пытаюсь завалить вас своей эрудицией.
источник
http://hop.perl.plover.com/ включает в себя книгу, которую вы можете скачать бесплатно. Он объясняет, как использовать многие функциональные приемы в Perl.
Большая часть того, что написано, может быть легко переведена на JavaScript, Ruby или Python.
источник
В настоящее время я изучаю функциональное программирование самостоятельно. Однако я учусь на Haskell.
Вот пара онлайн-книг (вы также можете купить их в твердом переплете iirc)
Haskell не является сложным и становится все более популярным (возможно, не таким массовым, как LISP или Erlang). Однако это чисто функциональный язык, и он заставит вас выучить парадигму функционального программирования. В отличие от наполовину обязательного полуфункционального подхода, который вы получите, используя не чисто функциональный язык.
Люди разработали WebServers, Bittorrent Clients и несколько реальных приложений, использующих haskell. Однако я лично использую его для изучения концепций, а затем применяю это к C # & F #, который до сих пор работал фантастически.
Наслаждаться.
источник
Я слышал хорошие вещи о «Структуре и интерпретации компьютерных программ» несколько раз. Это настоящая книга, поэтому, возможно, вы захотите получить ее и на бумаге, см. Http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871 .
Это бесплатно доступно здесь http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ), и есть даже видео лекций ( http: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )
источник
Программирование на Хаскеле
Возможно, вы не решите его купить, но на главной странице книги (см. Выше) есть ссылки на 13 видео 9-го канала о программировании на Haskell.
источник