Читаем Учебник по Haskell полностью

Структура констант

Несколько слов о теории графов

Строчная запись деревьев

Структура функций

Композиция и частичное применение

Декомпозиция и сопоставление с образцом

Проверка типов

Проверка типов с контекстом

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

Рекурсивные типы

Краткое содержание

Упражнения

Декларативный и композиционный стиль

Локальные переменные

where-выражения

let-выражения

Декомпозиция

Сопоставление с образцом

case-выражения

Условные выражения

Охранные выражения

if-выражения

Определение функций

Уравнения

Безымянные функции

Какой стиль лучше?

Краткое содержание

Упражнения

Функции высшего порядка

Обобщённые функции

Функция тождества

Константная функция

Функция композиции

Аналогия с числами

Функция перестановки

Функция on

Функция применения

Приоритет инфиксных операций

Приоритет функции композиции

Приоритет функции применения

Функциональный калькулятор

Функции, возвращающие несколько значений

Комбинатор неподвижной точки

Краткое содержание

Основные функции высшего порядка

Приоритет инфиксных операций

Упражнения

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

Композиция функций

Класс Category

Специальные функции

Взаимодействие с внешним миром

Три композиции

Обобщённая формулировка категории Клейсли

Примеры специальных функций

Частично определённые функции

Многозначные функции

Применение функций

Применение функций многих переменных

Несколько полезных функций

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

Функторы

Аппликативные функторы

Монады

Свойства классов

Полное определение классов

Исторические замечания

Краткое содержание

Упражнения

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

Случайные числа

Конечные автоматы

Отложенное вычисление выражений

Тип Map

Накопление результата

Тип-обёртка newtype

Записи

Накопление чисел

Накопление логических значений

Накопление списков

Монада изменяемых значений ST

Тип ST

Императивные циклы

Быстрая сортировка

Краткое содержание

Упражнения

IO

Чистота и побочные эффекты

Монада IO

Как пишутся программы

Типичные задачи IO

Вывод на экран

Ввод пользователя

Чтение и запись файлов

Ленивое и энергичное чтение файлов

Аргументы программы

Вызов других программ

Случайные значения

Исключения

Потоки текстовых данных

Форточка в мир побочных эффектов

Отладка программ

Композиция монад

Краткое содержание

Упражнения

Редукция выражений

Стратегии вычислений

Преимущества и недостатки стратегий

Вычисление по необходимости

Аннотации строгости

Принуждение к СЗНФ с помощью seq

Функции с хвостовой рекурсией

Тонкости применения seq

Энергичные образцы

Энергичные типы данных

Пример ленивых вычислений

Краткое содержание

Упражнения

Реализация Haskell в GHC

Этапы компиляции

Язык STG

Вычисление STG

Куча

Стек

Правила общие для обеих стратегий вычисления

Правила для стратегии вставка-вход

Правила для стратегии вычисление-применение

Представление значений в памяти. Оценка занимаемой памяти

Управление памятью. Сборщик мусора

Статистика выполнения программы

Статистика вычислителя

Профилирование функций

Поиск источников внезапной остановки

Оптимизация программ

Флаги оптимизации

Прагма INLINE

Прагма RULES

Прагма UNPACK

Краткое содержание

Упражнения

Ленивые чудеса

Численные методы

Дифференцирование

Интегрирование

Степенные ряды

Арифметика рядов

Производная и интеграл

Элементарные функции

Водосборы

Ленивее некуда

Краткое содержание

Упражнения

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

Свёртка

Логические значения

Натуральные числа

Maybe

Списки

Деревья

Развёртка

Списки

Потоки

Натуральные числа

Краткое содержание

Упражнения

Поиграем

Стратегия написания программ

Описание задачи

Набросок решения

Каркас. Типы и классы

Ленивое программирование

Пятнашки

Цикл игры

Приведём код в порядок

Формат запросов

Последние штрихи

Правила игры

Упражнения

Лямбда-исчисление

Лямбда исчисление без типов

Составление термов

Абстракция

Редукция. Вычисление термов

Рекурсия. Комбинатор неподвижной точки

Кодирование структур данных

Конструктивная математика

Расширение лямбда исчисления

Комбинаторная логика

Связь с лямбда-исчислением

Немного истории

Лямбда-исчисление с типами

Краткое содержание

Упражнения

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

Категория

Функтор

Естественное преобразование

Монады

Категория Клейсли

Дуальность

Начальный и конечный объекты

Начальный объект

Конечный объект

Сумма и произведение

Экспонента

Краткое содержание

Упражнения

Категориальные типы

Программирование в стиле оригами

Индуктивные и коиндуктивные типы

Существование начальных и конечных объектов

Гиломорфизм

Краткое содержание

Упражнения

Дополнительные возможности

Пуд сахара

Сахар для списков

Сахар для монад, do-нотация

Расширения

Обобщённые алгебраические типы данных

Семейства типов

Классы с несколькими типами

Экземпляры классов для синонимов

Функциональные зависимости

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

Полиморфизм высших порядков

Лексически связанные типы

И другие удобства и украшения

Краткое содержание

Упражнения

Средства разработки

Пакеты

Создание пакетов

Создаём библиотеки

Создаём исполняемые программы

Установка пакета

Удаление библиотеки

Репозиторий пакетов Hackage

Дополнительные атрибуты пакета

Установка библиотек для профилирования

Создание документации с помощью Haddock

Комментарии к определениям

Комментарии к модулю

Структура страницы документации

Разметка

Краткое содержание

Упражнения

Ориентируемся по карте

Алгоритм эвристического поиска А*

Поиск маршрутов в метро

Тестирование с помощью QuickCheck

Формирование тестовой выборки

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных