Учебник по Haskell - [3]
6.3 Применение функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Применение функций многих переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Несколько полезных функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.4 Функторы и монады . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Функторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Аппликативные функторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Монады . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Свойства классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Полное определение классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Исторические замечания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.5 Краткое содержание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.6 Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5
7 Функторы и монады: примеры
99
7.1 Случайные числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.2 Конечные автоматы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.3 Отложенное вычисление выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Тип Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.4 Накопление результата . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Тип-обёртка newtype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Записи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Накопление чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Накопление логических значений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Накопление списков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.5 Монада изменяемых значений ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Тип ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Императивные циклы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Быстрая сортировка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.6 Краткое содержание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.7 Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8 IO
120
8.1 Чистота и побочные эффекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.2 Монада IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
8.3 Как пишутся программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.4 Типичные задачи IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Вывод на экран . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Ввод пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Чтение и запись файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Ленивое и энергичное чтение файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Аргументы программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Вызов других программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Случайные значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Исключения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Потоки текстовых данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.5 Форточка в мир побочных эффектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Отладка программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.6 Композиция монад . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.7 Краткое содержание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.8 Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9 Редукция выражений
136
9.1 Стратегии вычислений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
«Однажды просыпаешься и понимаешь, что все это никуда не годится. Надо что-то менять». Драматург Юлия Тупикина предлагает простое и изящное решение для перемен в вашей жизни – попробуйте написать свою первую пьесу! Почему именно ее? Современный российский театр очень любит новичков, всегда открыт свежим именам и идеям. Вы сможете попробовать свои силы на одном из конкурсов, а там и до больших постановок и хороших гонораров недалеко. И даже если вы не станете великим писателем, процесс написания пьесы благодаря этой книге станет для вас увлекательным путешествием, полным творческих открытий. В книге много практических упражнений, которые можно выполнять одно за одним или выбирать те, что вам больше приглянулись.
Сулимов Клим Тимофеевич, кандидат биологических наук, ведущий научный сотрудник РосНИИ культурного и природного наследия им. Д. С. Лихачева, член научно-координационного совета по отечественным породам собак России. Научный консультант отдела кинологического мониторинга ПАО «Аэрофлот». Материал, подготовленный К. Т. Сулимовым в области общей и прикладной кинологии, представляет собой собственные комментарии к двум альтернативным теориям происхождения домашней собаки, к фрагментам истории отечественного собаководства, реплики и размышления на тему о стандартах пород и практике полевых испытаний охотничьих и служебных собак второй половины XX столетия, о нетрадиционном использовании естественных пород и перспективах выведения новых в настоящем и обозримом будущем. Затронуты проблемы так называемых бесхозных дворняг. Значительная часть книги посвящена критическому рассмотрению породных признаков главных отечественных пород и отродий отечественного разведения, функциональным особенностям основных статей собаки и ее поведению. Может служить пособием для изучения становления пород, их преобразований в условиях отечественной культуры собаководства.
Книга Н. Смелзера «Социология» представляет курс лекций по общей социологии для студентов высших учебных заведений.Достоинство книги в том, что она написана максимально доступным языком и полностью соответствует содержанию курса «Социология», как он отражён в государственном стандарте, а потому данное учебное пособие может быть базовым по этому курсу.Книга Смелзера также предназначена для широкого круга читателей и, в первую очередь, для предпринимателей и руководителей.На русском языке это уже второе издание.
Учебное пособие предлагает сжатое освещение вопросов, связанных с развитием французской и английской литератур указанного эстетического направления. Помимо изложения историко-литературного материала пособие содержит фрагменты из художественных произведений, которые становятся предметом подробного аналитического разбора.
Учебно-методическое пособие предназначено для аудиторной и самостоятельной работы студентов-бакалавров Пензенской ГСХА по дисциплине «культурология». В нем содержатся разделы, посвященные теории, истории мировой и отечественной культуры. В данном издании содержатся необходимые методические и учебные материалы, облегчающие подготовку студента ко всем формам итогового и промежуточного контроля по данной дисциплине.
Дорогие ребята!На уроках литературы вы знакомитесь с произведениями устного народного творчества. Один из самых сложных жанров фольклора – былины. У вас часто возникают трудности в изучении этих произведений – особенно в написании сочинений. Нынешнему школьнику непросто понять мир старинных былин и чувства, которые древнерусский сказитель вкладывал в них. В тексте былин всегда встречается много слов и образов, которые в умах и сердцах наших далёких предков вызывали яркие впечатления и горячие отклики, а современному человеку их необходимо пояснять.Эта книга поможет вам легко выполнить самые различные задания учителя: найти постоянные эпитеты в тексте былины, дать сравнительную характеристику персонажей, ответить на вопросы по содержанию произведения, подобрать пословицы на заданную тему и объяснить их происхождение и, конечно же, написать отличное сочинение.На темы, которые предлагает школьная программа, в книге представлены уже готовые сочинения.