Изучай Haskell во имя добра!

Липовача Миран

Код товара: 1178919
(0 оценок)Оценить
ОтзывНаписать отзыв
ВопросЗадать вопрос
1 / 3
PDF
Фиксированная скидка
Акция до 01.10.2024
 Подробнее
-35%
1 326
2 040
Доставим в
г. Москва
Курьером
Л-Пост
бесплатно от 10 000 ₽
В пункт выдачи
от 155 ₽
бесплатно от 10 000 ₽
Точная стоимость доставки рассчитывается при оформлении заказа
Издательство:
Оригинальное название:
Learn You a Haskell for Great Good! A Beginner's Guide
Год издания:
2017

Описание

Характеристики

Нет лучшего способа изучить этот мощный язык, чем чтение нашей книги! От освоения базовых основ к мастер классу от профессионала! Полезные примеры кода Эффективное использование уникальных особенностей Haskell.
код в Майшоп
1178919
возрастная категория
18+ (нет данных)
количество томов
1
количество страниц
490 стр.
размеры
205x142x23 мм
страна изготовления
Россия
формат
60x88 1/16
ISBN
978-5-97060-025-2, 978-5-97060-510-3
тип бумаги
офсетная (60-220 г/м2)
цвет
Белый
стандарт
вес
язык
Русский
переплёт
Мягкая обложка

Содержание

От издателя
Предисловие
Введение
1. На старт, внимание, марш!
Вызов функций
Функции: первые шаги
Списки
Конкатенация
Обращение к элементам списка
Списки списков
Сравнение списков
Другие операции над списками
Интервалы
Генераторы списков
Кортежи
Использование кортежей
Использование пар
В поисках прямоугольного треугольника
2. Типы и классы типов
Поверь в типы
Явное определение типов
Обычные типы в языке Haskell
Типовые переменные
Классы типов
Класс Eq
Класс Ord
Класс Show
Класс Read
Класс Enum
Класс Bounded
Класс Num
Класс Floating
Класс Integral
Несколько заключительных слов о классах типов
3. Синтаксис функций
Сопоставление с образцом
Сопоставление с парами
Сопоставление со списками и генераторы списков
Именованные образцы
Эй, стража!
Где же ты, where?!
Область видимости декларации where
Сопоставление с образцами в секции where
Функции в блоке where
Пусть будет let
Выражения let в генераторах списков
Выражения let B GHCi
Выражения для выбора из вариантов
4. Рекурсия
Привет, рекурсия
Максимум удобства
Ещё немного рекурсивных функций
Функция replicate
Функция take
Функция reverse
Функция repeat
Функция zip
Функция elem
Сортируем, быстро!
Алгоритм
Определение
Думаем рекурсивно
5. Функции высшего порядка
Каррированные функции
Сечения
Печать функций
Немного о высоких материях
Реализация функции zipWith
Реализация функции flip
Инструментарий функционального программиста
Функция тар
Функция filter
Ещё немного примеров использования тар и filter
Функция тар для функций нескольких переменных
Лямбда-выражения
Я вас сверну!
Левая свёртка foldl
Правая свёртка foldr
Функции foldl 1 и foldr 1
Примеры свёрток
Иной взгляд на свёртки
Свёртка бесконечных списков
Сканирование
Применение функций с помощью оператора $
Композиция функций
Композиция функций с несколькими параметрами
Бесточечная нотация
6. Модули
Импорт модулей
Решение задач средствами стандартных модулей
Подсчёт слов
Иголка в стоге сена
Салат из шифра Цезаря
О строгих левых свёртках
Поищем числа
Отображение ключей назначения
Почти хорошо: ассоциативные списки
Модуль Data. Map
Написание собственных модулей
Модуль Geometry
Иерархия модулей
7. Создание новых типов и классов типов
Введение в алгебраические типы данных
Отличная фигура за 15 минут
Верный способ улучшить фигуру
Фигуры на экспорт
Синтаксис записи с именованными полями
Параметры типа
Параметризовать ли машины?
Векторы судьбы
Производные экземпляры
Сравнение людей на равенство
Покажи мне, как читать
Порядок в суде!
Любой день недели
Синонимы типов
Улучшенная телефонная книга
Параметризация синонимов
Иди налево, потом направо
Рекурсивные структуры данных
Улучшение нашего списка
Вырастим-ка дерево
Классы типов, второй семестр
"Внутренности" класса Eq
Тип для представления светофора
Наследование классов
Создание экземпляров классов для
параметризованных типов
Класс типов "да-нет"
Класс типов Functor
Экземпляр класса Functor для типа Maybe
Деревья тоже являются функторами
И тип Either является функтором
Сорта и немного тип-фу
8. Ввод-вывод
Разделение "чистого" и "нечистого"
Привет, мир!
Объединение действий ввода-вывода
Использование ключевого слова let внутри блока
do
Обращение строк
Некоторые полезные функции для ввода-вывода
Функция putStr
Функция putChar
Функция print
Функция when
Функция sequence
Функция тарМ
Функция forever
Функция forM
Обзор системы ввода-вывода
9. Больше ввода и вывода
Файлы и потоки
Перенаправление ввода
Получение строк из входного потока
Преобразование входного потока
Чтение и запись файлов
Использование функции withFile
Время заключать в скобки
Хватай дескрипторы
Список дел
Удаление заданий
Уборка
Аргументы командной строки
Ещё больше шалостей со списком дел
Многозадачный список задач
Работаем с некорректным вводом
Случайность
Подбрасывание монет
Ещё немного функций, работающих со
случайностью
Случайность и ввод-вывод
Bytestring: тот же String, но быстрее
Строгие и ленивые
Копирование файлов при помощи Bytestring
Исключения
Обработка исключений, возникших в чистом коде
Обработка исключений ввода-вывода
Вспомогательные функции для работы с
исключениями
10. Решение задач в функциональном стиле
Вычисление выражений в обратной польской записи
Вычисление выражений в ОПЗ
Реализация функции вычисления выражений в ОПЗ
Добавление новых операторов
Из аэропорта в центр
Вычисление кратчайшего пути
Представление пути на языке Haskell
Реализация функции поиска оптимального пути
Получение описания дорожной системы из
внешнего источника
11. Аппликативные функторы
Функторы возвращаются
Действия ввода-вывода в качестве функторов
Функции в качестве функторов
Законы функторов
Закон 1
Закон 2
Нарушение закона
Использование аппликативных функторов
Поприветствуйте аппликативные функторы
Аппликативный функтор Maybe
Аппликативный стиль
Списки
Тип IO-тоже аппликативный функтор
Функции в качестве аппликативных функторов
Застёгиваемые списки
Аппликативные законы
Полезные функции для работы с аппликативными
функторами
12. Моноиды
Оборачивание существующего типа в новый тип
Использование ключевого слова newtype для
создания экземпляров классов типов
О ленивости newtype
Ключевое слово type против newtype и data
В общих чертах о моноидах
Класс типов Monoid
Законы моноидов
Познакомьтесь с некоторыми моноидами
Списки являются моноидами
Типы Product и Sum
Типы Any и АН
Моноид Ordering
Моноид Maybe
Свёртка на моноидах
13. Пригоршня монад
Совершенствуем наши аппликативные функторы
Приступаем к типу Maybe
Класс типов Monad
Прогулка по канату
Код, код, код
Я улечу
Банан на канате
Нотация do
Делай как я
Пьер возвращается
Сопоставление с образцом и неудача в
вычислениях
Списковая монада
Нотация do и генераторы списков
Класс MonadPlus и функция guard
Ход конём
Законы монад
Левая единица
Правая единица
Ассоциативность
14. Ещё немного монад
Writer? Я о ней почти не знаю!
Моноиды приходят на помощь
Тип Writer
Использование нотации do с типом Writer
Добавление в программы функции журналирования
Добавление журналирования в программы
Неэффективное создание списков
Разностные списки
Сравнение производительности
Монада Readег? Тьфу, опять эти шуточки
функции в качестве монад
Монада Reader
Вкусные вычисления с состоянием
Вычисления с состоянием
Стеки и чебуреки
Монада State
Получение и установка состояния
Случайность и монада State
Свет мой, Error, скажи, да всю правду доложи
Некоторые полезные монадические функции
IiftM и компания
Функция join
Функция tilterM
Функция foldM
Создание безопасного калькулятора выражений в
обратной польской записи
Композиция монадических функций
Создание монад
15. Застёжки
Прогулка
Тропинка из хлебных крошек
Движемся обратно вверх
Манипулируем деревьями в фокусе
Идем прямо на вершину, где воздух чист и свеж!
Фокусируемся на списках
Очень простая файловая система
Создаём застёжку для нашей файловой системы
Манипулируем файловой системой
Осторожнее- смотрите под ноги!
Благодарю за то, что прочитали!

Отзывы

Вопросы

Поделитесь своим мнением об этом товаре с другими покупателями — будьте первыми!

Дарим бонусы за отзывы!

За какие отзывы можно получить бонусы?
  • За уникальные, информативные отзывы, прошедшие модерацию
Как получить больше бонусов за отзыв?
  • Публикуйте фото или видео к отзыву
  • Пишите отзывы на товары с меткой "Бонусы за отзыв"
Правила начисления бонусов
Задайте вопрос, чтобы узнать больше о товаре
Если вы обнаружили ошибку в описании товара «Изучай Haskell во имя добра!» (авторы: Липовача Миран), то выделите её мышкой и нажмите Ctrl+Enter. Спасибо, что помогаете нам стать лучше!
Ваш населённый пункт:
г. Москва
Выбор населённого пункта