Функциональное программирование на F#

Дмитрий Сошников

Автор этой книги имеет богатый опыт преподавания курсов функционального программирования на базе F# в ведущих российских университетах, в то же время, будучи технологическим евангелистом, Майкрософт, он умеет доходчиво объяснить концепции функционального программирования даже начинающему разработчику ПО, не прибегая к сложным понятиям лямбда-исчисления.

Книга содержит много полезных примеров использования F# для решения практических задач: доступа к реляционным или слабоструктурированным XML-данным, использование F# для веб-разработки и веб-майнинга, визуализация данных и построение диаграмм, написание сервисов для облачных вычислений и асинхронных приложений для Windows Phone 7. Используя фрагменты кода, рассмотренные в книге, читатели могут немедленно приступить к решению своих практических задач на F#.

Издательство: ДМК Пресс, 2011 г.

ISBN 978-5-94074-689-8

Количество страниц: 192.

Содержание книги «Функциональное программирование на F#»:

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

Инструкция как скачать книгу Дмитрий Сошников: Функциональное программирование на F# в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Функциональное программирование на F#
Рейтинг книги:
0 голосов
913

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: