Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 640099)
Контекстум
Антиплагиат Руконтекст

Функциональное программирование на F# (2000,00 руб.)

0   0
Первый авторСошников
ИздательствоМ.: ДМК Пресс
Страниц193
ID795512
АннотацияАвтор этой книги имеет богатый опыт преподавания курсов функционального программирования на базе F# в ведущих российских университетах, в то же время, будучи технологическим евангелистом Майкрософт, он умеет доходчиво объяснить концепции функционального программирования даже начинающему разработчику ПО, не прибегая к сложным понятиям лямбда-исчисления. Книга содержит много полезных примеров использования F# для решения практических задач: доступа к реляционным или слабоструктурированным XML-данным, использование F# для веб-разработки и веб-майнинга, визуализация данных и построение диаграмм, написание сервисов для облачных вычислений и асинхронных приложений для Windows Phone 7. Используя фрагменты кода, рассмотренные в книге, читатели могут немедленно приступить к решению своих практических задач на F#.
ISBN978-5-97060-534-9
УДК004.438F#
ББК32.973.26-018.1
Сошников, Д.В. Функциональное программирование на F# / Д.В. Сошников .— Москва : ДМК Пресс, 2017 .— 193 с. — ISBN 978-5-97060-534-9 .— URL: https://rucont.ru/efd/795512 (дата обращения: 25.06.2024)

Предпросмотр (выдержки из произведения)

Функциональное_программирование_на_F#.pdf
Сошников Д. В. Функциональное программирование на F# Москва, 2017
Стр.3
УДК 004.438F# ББК 32.973.26-018.1 С54 Сошников Д. В. С54 Функциональное программирование на F#. – М.: ДМК Пресс, 2017. – 192 с.: ил. ISBN 978-5-97060-534-9 Автор этой книги имеет богатый опыт преподавания курсов функционального программирования на базе F# в ведущих российских университетах, в то же время, будучи технологическим евангелистом Майкрософт, он умеет доходчиво объяснить концепции функционального программирования даже начинающему разработчику ПО, не прибегая к сложным понятиям лямбда-исчисления. Книга содержит много полезных примеров использования F# для решения практических задач: доступа к реляционным или слабоструктурированным XML-данным, использование F# для веб-разработки и веб-майнинга, визуализация данных и построение диаграмм, написание сервисов для облачных вычислений и асинхронных приложений для Windows Phone 7. Используя фрагменты кода, рассмотренные в книге, читатели могут немедленно приступить к решению своих практических задач на F#. УДК 004.438F# ББК 32.973.26-018.1 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. © Сошников Д. В. ISBN 978-5-97060-534-9 © Оформление, издание, ДМК Пресс, 2017
Стр.4
Содержание Предисловие Дона Сайма ...................................................................... 6 Предисловие автора .................................................................................. 8 0. Введение ................................................................................................... 10 0.1. Зачем изучать функциональное программирование ................................... 10 0.2. О чем и для кого эта книга ........................................................................... 12 0.3. Как установить и начать использовать F# ................................................... 13 1. Основы функционального программирования .................. 17 1.1. Применение функций vs. Присваивание ..................................................... 17 1.2. Упорядоченные кортежи, списки и вывод типов .......................................... 19 1.3. Функциональные типы и описание функций ................................................ 20 1.4. Каррирование ............................................................................................. 22 1.5. Условный оператор и опциональный тип ..................................................... 23 1.6. Типы данных, размеченное объединение и сопоставление с образцом ...... 25 1.7. Рекурсия, функции-параметры и цикл for ................................................... 27 1.8. Конструкции >>, |> ..................................................................................... 28 1.9. Пример – построение множества Мандельброта ........................................ 29 1.10. Интероперабельность с .NET .................................................................... 31 2. Рекурсивные структуры данных ................................................. 34 2.1. Списки и конструкторы списков ................................................................. 34 2.2. Сопоставление с образцом......................................................................... 35 2.3. Простейшие функции обработки списков ................................................... 36 2.4. Функции высших порядков ......................................................................... 37 2.4.1. Отображение ...................................................................................... 37 2.4.2. Фильтрация ........................................................................................ 39 2.4.3. Свертка .............................................................................................. 41 2.4.4. Другие функции высших порядков ...................................................... 43 2.5. Генераторы списков .................................................................................... 44 2.6. Хвостовая рекурсия .................................................................................... 45 2.7. Сложностные особенности работы со списками ......................................... 47 2.8. Массивы ..................................................................................................... 50 2.9. Многомерные массивы и матрицы .............................................................. 52 2.9.1. Списки списков, или непрямоугольные массивы (Jаgged Arrays) ........ 52 2.9.2. Многомерные массивы .NET ............................................................... 53 2.9.3. Специализированные типы для матриц и векторов ............................. 54 2.9.4. Разреженные матрицы........................................................................ 55
Стр.5
4 Содержание 2.9.5. Использование сторонних математических пакетов ........................... 56 2.10. Деревья общего вида ................................................................................ 56 2.11. Двоичные деревья .................................................................................... 59 2.11.1. Определение .................................................................................... 59 2.11.2. Обход двоичных деревьев ................................................................. 59 2.11.3. Деревья поиска ................................................................................. 60 2.11.4. Деревья выражений и абстрактные синтаксические деревья (AST) ... 62 2.12. Другие структуры данных .......................................................................... 63 2.12.1. Множества (Set) ................................................................................ 63 2.12.2. Отображения (Map) ........................................................................... 63 2.12.3. Хеш-таблицы .................................................................................... 64 3. Типовые приемы функционального программирования .................................................................................. 66 3.1. Замыкания .................................................................................................. 66 3.2. Динамическое связывание и mutable-переменные ..................................... 67 3.3. Генераторы и ссылочные переменные ref .................................................... 68 3.4. Ленивые последовательности (seq) ............................................................ 71 3.4.1. Построение частотного словаря текстового файла ............................. 73 3.4.2. Вычисление числа π методом Монте-Карло ........................................ 74 3.5. Ленивые и энергичные вычисления ............................................................ 76 3.6. Мемоизация ............................................................................................... 79 3.7. Продолжения .............................................................................................. 81 4. Императивные и объектно-ориентированные возможности F# ......................................................................................... 84 4.1. Мультипарадигмальность языка F# ............................................................ 84 4.2. Элементы императивного программирования на F# ................................... 85 4.2.1. Использование изменяемых переменных и ссылок ............................. 85 4.2.2. Цикл с предусловием .......................................................................... 86 4.2.3. Условный оператор ............................................................................. 87 4.2.4. Null-значения ...................................................................................... 87 4.2.5. Обработка исключительных ситуаций ................................................. 87 4.3. Объектно-ориентированное программирование на F# ............................... 89 4.3.1. Записи ................................................................................................ 89 4.3.2. Моделирование объектной ориентированности через записи и замыкания ................................................................................................ 90 4.3.3. Методы ............................................................................................... 91 4.3.4. Интерфейсы ....................................................................................... 92 4.3.5. Создание классов с помощью делегирования .................................... 93 4.3.6. Создание иерархии классов ............................................................... 94 4.3.7. Расширение функциональности имеющихся классов ......................... 97 4.3.8. Модули ............................................................................................... 97 5. Метапрограммирование ................................................................. 99 5.1. Языково-ориентированное программирование ......................................... 99 5.2. Активные шаблоны ....................................................................................102 5.3. Квотирование ............................................................................................103
Стр.6
Содержание 5 5.4. Конструирование выражений, частичное применение функции и суперкомпиляция ..........................................................................................106 5.5. Монады .....................................................................................................107 5.5.1. Монада ввода-вывода .......................................................................108 5.5.2. Монадические свойства ....................................................................110 5.5.3. Монада недетерминированных вычислений ......................................111 5.6. Монадические выражения .........................................................................112 6. Параллельное и асинхронное программирование ........115 6.1. Асинхронные выражения и параллельное программирование ...................115 6.2. Асинхронное программирование ...............................................................116 6.3. Асинхронно-параллельная обработка файлов ...........................................118 6.4. Агентный паттерн проектирования ............................................................120 6.5. Использование MPI....................................................................................122 7. Решение типовых задач .................................................................127 7.1. Вычислительные задачи ............................................................................127 7.1.1. Вычисления с высокой точностью ......................................................127 7.1.2. Комплексный тип ...............................................................................128 7.1.3. Единицы измерения...........................................................................128 7.1.4. Использование сторонних математических пакетов ..........................129 7.2. Доступ к данным ........................................................................................131 7.2.1. Доступ к реляционным базам данных (SQL Server) .............................131 7.2.2. Доступ к слабоструктурированным данным XML ................................136 7.2.3. Работа с данными в Microsoft Excel ....................................................139 7.3. Веб-программирование ............................................................................143 7.3.1. Доступ к веб-сервисам, XML-данным, RSS-потокам ..........................144 7.3.2. Доступ к текстовому содержимому веб-страниц ................................144 7.3.3. Использование веб-ориентированных программных интерфейсов на примере Bing Search API .........................................................................147 7.3.4. Реализация веб-приложений на F# для ASP.NET Web Forms ...............148 7.3.5. Реализация веб-приложений на F# для ASP.NET MVC ........................150 7.3.6. Реализация веб-приложений на F# при помощи системы WebSharper .................................................................................................152 7.3.7. Облачное программирование на F# для Windows Azure ......................156 7.4. Визуализация и работа с графикой ............................................................158 7.4.1. Двухмерная графика на основе Windows Forms API ............................159 7.4.2. Использование элемента Chart ..........................................................160 7.4.3. 3D-визуализация с помощью DirectX и/или XNA .................................164 7.5. Анализ текстов и построение компиляторов ..............................................171 7.4.1. Реализация синтаксического разбора методом рекурсивного спуска .........................................................................................................171 7.4.2. Использование fslex и fsyacc ..............................................................174 7.5. Создание F#-приложений для Silverlight и Windows Phone 7 .......................179 Вместо заключения .................................................................................185 Рекомендуемая литература ..............................................................190
Стр.7

Облако ключевых слов *


* - вычисляется автоматически
Периодика по подписке
Антиплагиат система Руконтекст