Выбрать главу

http://learnyouahaskell.com/

• Hal Daume III. Yet Another Haskell Tutorial.

Ещё одна очень хорошая книга для начинающих. Без картинок, но всё по делу.

• Paul Hudak. Haskell School of Expression.

Книга, которая иллюстрирует основные принципы функционального программирования на примере

Haskell. Главные достоинства – много текста об общих принципах и интересные приложения, картинки,

музыка, анимация, управление роботами и всё это на Haskell.

• Paul Hudak. Haskell School of Music.

Пол Хьюдак увлекается не только Haskell, но и музыкой. Он написал книгу, которая целиком посвящена

описанию музыки в Haskelclass="underline"

http://www.cs.yale.edu/homes/hudak/Papers/HSoM.pdf

http://haskell.cs.yale.edu/

• Bryan O’Sullivan, Don Stewart, John Goerzen. Real World Haskell.

Очень полезная книга в помощь тем, кто хочет научиться писать настоящие, серьёзные программы.

Авторы подробно изучают вопросы, связанные с применением Haskell на практике.

http://book.realworldhaskell.org/

• Готовится к выходу к книга Саймона Марлоу о параллельных вычислениях в Haskell. Обещает быть

очень интересной, уже известно, что книга будет доступна в интернете.

Тематический сборник

Основы

• John Hughes. Why Functional Programming Matters.

• Paul Hudak, John Hughes, Simon Peyton Jones, Philip Wadler. A History of Haskelclass="underline" Being Lazy With Class.

• Mark P. Jones. Functional Programming with Overloading and Higher-Order Polymorphism.

• Евгений Кирпичев. Элементы функциональных языков программирования, журнал Практика функци-

онального программирования.

• Simon Thompson. Programming It in Haskell.

• Justin Bailey. Haskell Cheat Sheet.

Разработка программ сверху-вниз

• Дмитрий Астапов. Давно не брал я в руки шашек, журнал Практика функционального программиро-

вания.

1Обновление: книга переведена на русский, вышла в издательстве ДМК Пресс.

320 | Приложения

Функторы и монады

• Conor McBride, Ross Paterson. Applicative programming with effects. Статья об аппликативных функторах.

• Philip Wadler. The Essence of Functional Programming.

Статья, в которой впервые зашла речь о применении монад в Haskell.

• Tarmo Uustalu, Varmo Vene. The Essence of Dataflow Programming.

Статья о комонадах, но есть много интересного и о монадах.

• Bulat Ziganshin. Haskell I/O inside: Down the Rabbit’s Hole. Статья на HaskellWiki.

• John Launchbury, Simon Peyton Jones. Lazy functional state threads.

Статья о типе ST.

• Simon Peyton Jones. Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and

foreign-language calls in Haskell.

Ленивые вычисления

• Douglas McIlroy. Power Series, Power Serious.

• Дмитрий Астапов. Реурсия+мемоизация=динамическое программирование, журнал Практика функ-

ционального программирования.

• Сергей Зефиров. Лень бояться, журнал Практика функционального программирования.

• Jerzy Karczmarczuk. Specific “scientific” data structures, and their processing.

Структурная рекурсия

• Graham Hutton. A tutorial on the universality and expressiveness of fold

• Jeremy Gibbons. Origami Programming.

• Jeremy Gibbons, Geraint Jones. The Under-Appreciated Unfold.

Лямбда-исчисление и функциональное программирование

• Шалак В.И. Шейнфинкель и комбинаторная логика.

• Paul Hudak: Conception, Evolution, and Application of Functional Programming Languages.

Длинная статья о развитии функциональных языков. Там есть главы о лямбда-исчислении.

• Бенджамин Пирс. Типы в языках программирования.

Большая книга о теории типов.

http://newstar.rinet.ru/~goga/tapl/

• Денис Москвин. Системы типизации лямбда-исчисления.

Курс видео-лекций.

http://www.lektorium.tv/course/?id=22797

• John Harrison. Introduction to Functional Programming.

Курс лекций по функциональному программированию, который читался в Университете Кэмбридж.

• А. Филд, П. Харрисон, Функциональное программирование, Москва “Мир”, 1993.

Большая книга для читателей, всерьёз заинтересовавшихся функциональным программированием.

Прочитав её, вы сможете не только пользоваться ФП-языками но и написать такой язык самостоя-

тельно.

• Rinus Plasmeijer and Marko van Eekelen. Functional Programming and Parallel Graph Rewriting.

В этой книге исследуются вопросы распараллеливания функциональных программ, построение ком-

пиляторов для функциональных языков.

Литература | 321

Теория категорий

Две очень хорошие книги для начинающих:

• Maarten M. Fokkinga. Gentle Introduction to Category Theory.

Также где-то в сети есть и перевод на русский.

• Steve Awodey. Category Theory.

• Eugenia Cheng, Simon Willerton aka TheCatsters. Курс видео-лекций на youtube.

http://www.scss.tcd.ie/Edsko.de.Vries/ct/catsters/linear.php

http://www.youtube.com/user/TheCatsters

Статьи по категориальным типам:

• Varmo Vene. Categorical Programming with Inductive and Coinductive Types. Phd-диссертация.

• Erik Meijer, Graham Hutton. Bananas in Space: Extending Fold and Unfold to Exponential Types.

• Martin Erwig. Categorical Programming with Abstract Data Types.

• Martin Erwig. Metamorphic Programming: Structured Recursion for Abstract Data Types.

Практика

• Conal Elliott. Denotational design with type class morphisms.

• Johan Tibell. High Performance Haskell. Слайды с выступления.

• Johan Tibel. Faster persistent data structures through hashing. Слайды с выступления.