Содержание описания Haskell 98
Описание Haskell 98
наверх
|
предметный указатель функций
Описание Haskell 98: Содержание
1
Введение
1.1
Структура программы
1.2
Ядро Haskell
1.3
Значения и типы
1.4
Пространства имен
2
Лексическая структура
2.1
Соглашения об обозначениях
2.2
Лексическая структура программы
2.3
Комментарии
2.4
Идентификаторы и операторы
2.5
Числовые литералы
2.6
Символьные и строковые литералы
2.7
Размещение
3
Выражения
3.1
Ошибки
3.2
Переменные, конструкторы, операторы и литералы
3.3
Производные функции и лямбда-абстракции
3.4
Применение операторов
3.5
Сечения
3.6
Условные выражения
3.7
Списки
3.8
Кортежи
3.9
Единичные выражения и выражения в скобках
3.10
Арифметические последовательности
3.11
Описание списка
3.12
Let-выражения
3.13
Case-выражения
3.14
Do-выражения
3.15
Типы данных с именованными полями
3.15.1
Извлечение полей
3.15.2
Создание типов данных с использованием имен полей
3.15.3
Обновления с использованием имен полей
3.16
Сигнатуры типов выражений
3.17
Сопоставление с образцом
3.17.1
Образцы
3.17.2
Неформальная семантика сопоставления с образцом
3.17.3
Формальная семантика сопоставления с образцом
4
Объявления и связывания имен
4.1
Обзор типов и классов
4.1.1
Виды
4.1.2
Синтаксис типов
4.1.3
Синтаксис утверждений классов и контекстов
4.1.4
Семантика типов и классов
4.2
Типы данных, определяемые пользователем
4.2.1
Объявления алгебраических типов данных
4.2.2
Объявление синонимов типов
4.2.3
Переименования типов данных
4.3
Классы типов и перегрузка
4.3.1
Объявления классов
4.3.2
Объявления экземпляров
4.3.3
Производные экземпляры
4.3.4
Неоднозначные типы и значения по умолчанию для перегруженных числовых операций
4.4
Вложенные объявления
4.4.1
Сигнатуры типов
4.4.2
Infix-объявления
4.4.3
Связывание имен в функциях и образцах
4.4.3.1
Связывание имен в функциях
4.4.3.2
Связывание имен в образцах
4.5
Статическая семантика связываний имен в функциях и образцах
4.5.1
Анализ зависимостей
4.5.2
Обобщение
4.5.3
Ошибки приведения контекста
4.5.4
Мономорфизм
4.5.5
Ограничение мономорфизма
4.6
Вывод вида
5
Модули
5.1
Структура модуля
5.2
Списки экспорта
5.3
Объявления импорта
5.3.1
Что такое импортирование
5.3.2
Импортирование с использованием квалификаторов
5.3.3
Локальные синонимы
5.3.4
Примеры
5.4
Импортирование и экспортирование объявлений экземпляров
5.5
Конфликт имен и замыкание
5.5.1
Квалифицированные имена
5.5.2
Конфликты имен
5.5.3
Замыкание
5.6
Стандартное начало (Prelude)
5.6.1
Модуль
Prelude
5.6.2
Сокрытие имен из Prelude
5.7
Раздельная компиляция
5.8
Абстрактные типы данных
6
Предопределенные типы и классы
6.1
Стандартные типы Haskell
6.1.1
Булевский тип
6.1.2
Символы и строки
6.1.3
Списки
6.1.4
Кортежи
6.1.5
Единичный тип данных
6.1.6
Типы функций
6.1.7
Типы IO и IOError
6.1.8
Другие типы
6.2
Строгое вычисление
6.3
Стандартные классы Haskell
6.3.1
Класс Eq
6.3.2
Класс Ord
6.3.3
Классы Read и Show
6.3.4
Класс Enum
6.3.5
Класс Functor
6.3.6
Класс Monad
6.3.7
Класс Bounded
6.4
Числа
6.4.1
Числовые литералы
6.4.2
Арифметические и теоретико-числовые операции
6.4.3
Возведение в степень и логарифмы
6.4.4
Абсолюная величина и знак
6.4.5
Тригонометрические функции
6.4.6
Приведение и извлечение компонент
7
Основные операции ввода - вывода
7.1
Стандартные функции ввода - вывода
7.2
Последовательные операции ввода - вывода
7.3
Обработка исключений в монаде ввода - вывода
8
Стандартное начало (Prelude)
8.1
Prelude
PreludeList
8.2
Prelude
PreludeText
8.3
Prelude
PreludeIO
9
Синтаксический справочник
9.1
Соглашения об обозначениях
9.2
Лексический синтаксис
9.3
Размещение
9.4
Грамотные комментарии
9.5
Контекстно-свободный синтаксис
9.6
Грамотные комментарии
10
Спецификация производных экземпляров
10.1
Производные экземпляры классов
Eq
и
Ord
10.2
Производные экземпляры класса
Enum
10.3
Производные экземпляры класса
Bounded
10.4
Производные экземпляры классов
Read
и
Show
10.5
Пример
11
Указания компилятору (псевдокомментарии)
11.1
Встраивание
11.2
Специализация
12
Рациональные числа
12.1
Библиотека
Ratio
13
Комплексные числа
13.1
Библиотека
Complex
14
Числовые функции
14.1
Функции преобразования величин в строки
14.2
Функции преобразования строк в другие величины
14.3
Прочие функции
14.4
Библиотека
Numeric
15
Операции индексации
15.1
Выведение экземпляров
Ix
15.2
Библиотека
Ix
16
Массивы
16.1
Создание массивов
16.1.1
Накопленные массивы
16.2
Добавочные обновления массивов
16.3
Производные массивы
16.4
Библиотека
Array
17
Утилиты работы со списками
17.1
Индексирование списков
17.2
Операции над "множествами"
17.3
Преобразования списков
17.4
unfoldr
17.5
Предикаты
17.6
"
By
"-операции
17.7
"
generic
"-операции
17.8
Дополнительные "
zip
"-операции
17.9
Библиотека
List
18
Утилиты Maybe
18.1
Библиотека
Maybe
19
Утилиты работы с символами
19.1
Библиотека
Char
20
Утилиты работы с монадами
20.1
Соглашения об именах
20.2
Класс
MonadPlus
20.3
Функции
20.4
Библиотека
Monad
21
Ввод - вывод
21.1
Ошибки ввода - вывода
21.2
Файлы и дескрипторы
21.2.1
Стандартные дескрипторы
21.2.2
Полузакрытые дескрипторы
21.2.3
Блокировка файлов
21.3
Открытие и закрытие файлов
21.3.1
Открытие файлов
21.3.2
Закрытие файлов
21.4
Определение размера файла
21.5
Обнаружение конца ввода
21.6
Операции буферизации
21.6.1
Сбрасывание буферов на диск
21.7
Позиционирование дескрипторов
21.7.1
Повторное использование позиции ввода - вывода
21.7.2
Установка новой позиции
21.8
Свойства дескрипторов
21.9
Ввод и вывод текста
21.9.1
Проверка ввода
21.9.2
Чтение ввода
21.9.3
Считывание вперед
21.9.4
Считывание всего ввода
21.9.5
Вывод текста
21.10
Примеры
21.10.1
Суммирование двух чисел
21.10.2
Копирование файлов
21.11
Библиотека
IO
22
Функции с каталогами
23
Системные функции
24
Дата и время
24.1
Библиотека
Time
25
Локализация
25.1
Библиотека
Locale
26
Время CPU
27
Случайные числа
27.1
Класс
RandomGen
и генератор
StdGen
27.2
Класс
Random
27.3
Глобальный генератор случайных чисел