Система Orphus
Версия для печати

Мягкое введение в Haskell

Часть 2

Авторы: Пол Хьюдак
Джон Петерсон
Yale University
Джозеф Фасел
Los Alamos National Laboratory

Перевод: Денис Москвин
SoftJoys Computer Academy

Источник: A Gentle Introduction To Haskell
Материал предоставил: RSDN Magazine #1-2007
Опубликовано: 24.04.2007
Версия текста: 1.0
8 Стандартные классы Haskell
8.1 Классы равенства и упорядоченности
8.2 Класс перечислений
8.3 Классы Read и Show
8.4 Производные воплощения
9 О монадах
9.1 Монадические классы
9.2 Встроенные монады
9.3 Использование монад
10 Числа
10.1 Структура числового класса
10.2 Конструируемые числа
10.3 Приведение чисел и перегруженные литералы
10.4 Числовые типы по умолчанию
11 Модули
11.1 Квалифицированные имена
11.2 Абстрактные типы данных
11.3 Прочие свойства
12 Ловушки типизации
12.1 Let-связанный полиморфизм
12.2 Перегрузка чисел
12.3 Ограничение мономорфизма
13 Массивы
13.1 Типы индексов
13.2 Создание массивов
13.3 Аккумуляция
13.4 Инкрементальные обновления
13.5 Пример: умножение матриц
14 Следующий этап
15 Благодарности
Ссылки

8 Стандартные классы Haskell

В этом разделе мы представляем предопределённые стандартные классы типов Haskell. Мы несколько упростили эти классы, опустив в них некоторые (менее интересные) методы; описание языка Haskell содержит более полную информацию. Следует также отметить, что некоторые из этих стандартных классов являются частью стандартных библиотек Haskell; они описаны в Haskell Library Report.

8.1 Классы равенства и упорядоченности

8.2 Класс перечислений

8.3 Классы Read и Show

8.4 Производные воплощения

9 О монадах

9.1 Монадические классы

9.2 Встроенные монады

9.3 Использование монад

10 Числа

10.1 Структура числового класса

10.2 Конструируемые числа

10.3 Приведение чисел и перегруженные литералы

10.4 Числовые типы по умолчанию

11 Модули

11.1 Квалифицированные имена

11.2 Абстрактные типы данных

11.3 Прочие свойства

12 Ловушки типизации

12.1 Let-связанный полиморфизм

12.2 Перегрузка чисел

12.3 Ограничение мономорфизма

13 Массивы

13.1 Типы индексов

13.2 Создание массивов

13.3 Аккумуляция

13.4 Инкрементальные обновления

13.5 Пример: умножение матриц

14 Следующий этап

Большая коллекция ресурсов, посвященных Haskell, доступна на сайте haskell.org. Здесь можно найти компиляторы, демонстрации, статьи и много полезной информации о Haskell и функциональном программировании. Компиляторы и интерпретаторы Haskell работают почти на любом оборудовании и почти на всех операционных системах. Система Hugs имеет небольшой размер и перенесена на множество платформ – это прекрасный инструмент для изучения Haskell.

15 Благодарности

Благодарим Patricia Fasel и Mark Mundt из Лос-Аламоса, а также Nick Carriero, Charles Consel, Amir Kishon, Sandra Loosemore, Martin Odersky и David Rochberg из Йельского университета за их быструю вычитку ранних черновиков этого манускрипта. Особые благодарности Erik Meijer за его обширные комментарии к новому материалу, добавленному к версии 1.4 этого руководства.

Ссылки

  1. R. Bird. Introduction to Functional Programming using Haskell. Prentice Hall, New York, 1998.
  2. A.Davie. Introduction to Functional Programming System Using Haskell. Cambridge University Press, 1992.
  3. P. Hudak. Conception, evolution, and application of functional programming languages. ACM Computing Surveys, 21(3):359--411, 1989.
  4. Simon Peyton Jones (editor). Report on the Programming Language Haskell 98, A Non-strict Purely Functional Language. Yale University, Department of Computer Science Tech Report YALEU/DCS/RR-1106, Feb 1999.
  5. Simon Peyton Jones (editor) The Haskell 98 Library Report. Yale University, Department of Computer Science Tech Report YALEU/DCS/RR-1105, Feb 1999.
  6. R.S. Nikhil. Id (version 90.0) reference manual. Technical report, Massachusetts Institute of Technology, Laboratory for Computer Science, September 1990.
  7. J. Rees and W. Clinger (eds.). The revised report on the algorithmic language Scheme. SIGPLAN Notices, 21(12):37--79, December 1986.
  8. G.L. Steele Jr. Common Lisp: The Language. Digital Press, Burlington, Mass., 1984.
  9. P. Wadler. How to replace failure by a list of successes. In Proceedings of Conference on Functional Programming Languages and Computer Architecture, LNCS Vol. 201, pages 113--128. Springer Verlag, 1985.
  10. P. Wadler. Monads for Functional Programming In Advanced Functional Programming , Springer Verlag, LNCS 925, 1995.


Полная версия этой статьи опубликована в журнале RSDN Magazine #1-2007. Информацию о журнале можно найти здесь