52700.fb2
• 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. Слайды с выступления.
• Simon Marlow. Parallel and Concurrent Programming in Haskell.
• Edward Z. Yang. Блог о Haskell в картинках. Много полезной информации о лени и устройстве ghc.
http://blog.ezyang.com/about/
• Oleg Kiselyov. Блог в том числе и о Haskell. Много решений интересных и нетривиальных задач. http:
//okmij.org/ftp/
Как работает GHC
• Документация GHC:
http://hackage.haskell.org/trac/ghc/wiki/Commentary
• Don Stewart. Multi-paradigm Just-In-Time Compilation. BS Thesis, 2002.
Автор пробует компилировать Haskell-код в Java-код. При этом очень доступно объясняеются внутрен-
ности STG.