КаталогКниг.РФ

Изучай Haskell во имя добра! (Липовача Миран) ; ДМК-Пресс, 2017

Книга: Изучай Haskell во имя добра! (Липовача Миран) ; ДМК-Пресс, 2017

от 1043 р. до 2089 р.


Сравнить цены

Цена от 1043 р. до 2089 р. в 7 магазинах

МагазинЦенаНаличие
Лабиринт

5/5

1530 р. 2185 р.
Яндекс.Маркет

5/5

1436 р.
МАЙШОП

5/5

1326 р. 2040 р.
Book24

5/5

2089 р.
Буквоед

5/5

2089 р.
Минимальная сумма заказа 100 рублей
Мегамаркет

5/5

1499 р. 2498 р.
наличие уточняйте
13.04.2024
OZON
1043 р.
наличие уточняйте
29.12.2023
AliExpress

5/5

Читай-город

5/5

Как купить или где мы находимся +

Описание

На взгляд автора, сущность программирования заключается в решении проблем. Программист всегда думает о проблеме и возможных решениях-либо пишет код для выражения этих решений.
Язык Haskell имеет множество впечатляющих возможностей, но главное его свойство в том, что меняется не только способ написания кода, но и сам способ размышления о проблемах и возможных решениях. Этим Haskell действительно отличается от большинства языков программирования. С его помощью мир можно представить и описать нестандартным образом. И поскольку Haskell предлагает совершенно новые способы размышления о проблемах, изучение этого языка может изменить и стиль программирования на всех прочих.
Ещё одно необычное свойство Haskell состоит в том, что в этом языке придаётся особое значение рассуждениям о типах данных. Как следствие, вы помещаете больше внимания и меньше кода в ваши программы.
Вне зависимости от того, в каком направлении вы намерены двигаться, путешествуя в мире программирования, небольшой заход в страну Haskell себя оправдает. Л если вы решите там остаться, то наверняка найдёте чем заняться и чему поучиться!
Эта книга поможет многим читателям найти свой путь к Haskell.

Все сказано в названии: "Изучай Хаскель во имя добра! " - это веселый иллюстрированный учебник по этому сложному функциональному языку. Включая оригинальные рисунки автора, отсылки к поп культуре, и, самое главное, полезные примеры кода, эта книга обучает основам функционального программирования так, как вы никогда не смогли бы себе представить. Вы начнете изучение с простого мате-риала: основы синтаксиса, рекурсия, типы и классы типов. Затем, когда вы преуспеете в основах, начнется настоящий мастер-класс со знанием дела: вы изучите, как использовать аппликативные функторы, монады, застежки, и другие легендарные конструкты Хаскеля, о которых вы читали только в сказках.

Смотри также Характеристики.

Яндекс.Маркет


Содержание

От издателя
Предисловие
Введение
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. Застёжки
Прогулка
Тропинка из хлебных крошек
Движемся обратно вверх
Манипулируем деревьями в фокусе
Идем прямо на вершину, где воздух чист и свеж!
Фокусируемся на списках
Очень простая файловая система
Создаём застёжку для нашей файловой системы
Манипулируем файловой системой
Осторожнее- смотрите под ноги!
Благодарю за то, что прочитали!

О книге

Автор(ы)
ИздательДМК-Пресс
ПереплетМягкая глянцевая
Год издания2017
Кол-во страниц490
ISBN978-5-9706-0025-2
Возрастные ограничения12
Тип обложкимягкая
Количество страниц490
Возрастное ограничение12+
Количество книг1
Вес516
ИздательствоДМК ПРЕСС
Формат21x14,5x2,4
Размеры60x90/16
Язык изданияРусский
Обложкамягкая обложка

Отзывы (3)

  • 4/5

    Книга отвратительная. НЕ по содержанию - издание ужасное. Про прелести текста уже очень много хорошего сказано, добавить, не повторяясь, нечего. Перевод тоже хорош, хотя местами, конечно, локализация шуток не очень удаётся: как-то слегка неуместно выглядят некоторые фразы, но это не то чтобы косяк переводчика, здесь проблема в различиях самих языков и культур написания литературы, в том числе технической, околоразговорным стилем. Ну, в любом случае, в содержании отсутствуют минусы, критичные настолько, что способны предостеречь от прочтения книги. Нет, всё хорошо. Где нифига не хорошо, это в качестве самого экземпляра.

    Жалко потраченных денег. Тот факт, что книга начала расклеиваться после двух(!) недель не очень(!!) активного использования, вызывает больше недоумения, чем злости. Может, кто-то уже привык к такому плохому качеству печати, но для меня настолько плохая устойчивость книги к самому обычному кейсу эксплуатации, просто дезориентирует, я не хочу, чтобы книга в 500 страниц за 800+ рублей начала расклеиваться ещё до прочтения. Это не нормально, не приятно, это обидно.

    Вдобавок, тоже не знаю насколько это нормальная практика, но мне вообще не понравилось, что в книге совсем отсутствуют цветные иллюстрации. Ладно, это действительно может звучать как неважная хотелка для большинства литературы, тем более технической, но здесь есть примеры, где цвет рисунка действительно играет какую-то роль, и текст ссылается на этот атрибут иллюстрации. В одной из начальных глав демонстрируется реализация алгоритма быстрой сортировки на хаскелле, где на рисунке числа имеют некую семантику в контексте алгоритма, зависящую от цвета, которым они раскрашены, и автор объясняет работу алгоритма именно посредством описания этой семантики. В этом месте, однако, есть примечание (издателя, наверное), что цветную иллюстрацию можно найти на форзаце книги. После того, как я осмотрел форзацы, я пролистал буквально ВСЮ книгу, ища хоть какие-то появления цвета. Ничего, помимо обложек, всё чёрно-белое.

    И в завершение всему этому, почти во всех примерах кода отсутствуют символы "возведения в степень" (не знаю правильное название) - ^, вместо них просто пустое пространство или лишь часть символа. Опять же, может, в большинстве книг это и простительно, но не здесь точно.

    В общем, не рекомендую покупать эту книгу. Настоятельно рекомендую предпочесть онлайн вариант книги на сайте автора. Бесплатный, бессмертный, всегда актуальный вариант с цветными иллюстрациями, пусть и на английском языке

    0    0

  • 5/5

    Книга отлично подойдет для тех, кто только начинает свое знакомство с этим интересным языком программирования. Основы Haskell изложены в простой и шутливой форме, без лишних усложнений - автор доносит до вас суть или идею того или иного аспекта языка и рассказывает о том как все это дело использовать.



    С данной книгой так же будет полезно ознакомится тем, кто уже имел опыт работы с функциональными ЯП, например, OCaml - вы обязательно почерпнете для себя много нового.

    0    0

  • 4/5

    В этой книге автор излагает основы функционального программирования на языке Haskell в легком и весьма непринуждённом стиле. Знакомство с функциональным стилем переворачивает представления о программировании с ног на голову (или с головы на ноги, после прочтения книги кажется что именно так).

    Содержит множество примеров, наглядно демонстрирующих как можно быстро "на коленке" реализовать те или иные функции из стандартной библиотеки языка. Весьма убедительная демонстрация простоты и выразительности языка Haskell.

    Книга прекрасно подойдет для начального ознакомления и получения общего представления о Haskell. Любители забавных рисунков на полях, которые иногда относятся к предмету изложения, а иногда лишь чем-то отдаленно его напоминают, останутся довольны. Однако их радость может быть омрачена тем, что рисунки в книге черно-белые, а не цветные.

    Гуру программирования, возможно найдут книгу слишком поверхностной, впрочем тогда её всё ещё можно прочитать ради забавных картинок.

    0    0

Добавить отзыв



1 ms.

Книги с похожим названием

Искать все [3]

 

Программирование - издательство "ДМК-Пресс"

Категория 834 р. - 1251 р.

Программирование - издательство "ДМК-Пресс" »

0 ms.

Программирование

Категория 834 р. - 1251 р.

ADS
закладки (0) сравнение (0)

 

preloader

7 ms