Оглавление....6
Вступительное слово....14
Предисловие....16
Введение в F#....16
Что необходимо для работы с этой книгой....17
Структура книги....18
Использование программного кода примеров....21
Об авторе....23
Часть I. Мультипарадигмальное программирование....24
Глава 1. Введение в F#....26
Знакомство с F#....26
Visual Studio 2010....27
F# Interactive....32
Управление файлами с исходными кодами F#....35
Глава 2. Основы....37
Элементарные типы....37
Сравнение и равенство....47
Функции....47
Основные типы....56
Строение программы на языке F#....72
Глава 3. Функциональное программирование....76
Программирование с помощью функций....77
Сопоставление с образцом....94
Размеченные объединения....103
Записи....109
Отложенные вычисления....112
Последовательности....113
Глава 4. Императивное программирование....119
Понятие памяти в .NET....120
Изменение значений....124
Массивы....128
Типы изменяемых коллекций....137
Циклы....142
Исключения....145
Глава 5. Объектно-ориентированное программировани....152
Программирование с применением объектов....152
System.Object....154
Классы....160
Методы и свойства....166
Наследование....176
Глава 6. Программирование на платформе .NET....186
Платформа .NET....186
Интерфейсы....190
Объектные выражения....194
Методы расширения....197
Расширение модулей....198
Перечисления....199
Структуры....202
Глава 7. Прикладное функциональное программирование....207
Единицы измерения....208
Активные шаблоны....213
Использование модулей....224
Работа со списками....231
Хвостовая рекурсия....234
Программирование с применением функций....244
Функциональные шаблоны проектирования....248
Глава 8. Прикладное объектно-ориентированное программирование....255
Операторы....255
Ограничения обобщенных типов....262
Делегаты и события....265
События....269
Часть II. Программирование на языке F#....280
Глава 9. Сценарии....282
Файлы сценариев на языке F#....283
Директивы....284
Рецепты по созданию сценариев....287
Глава 10. Вычислительные выражения....294
На пути к вычислительным выражениям....294
Построители вычислительных выражений....298
Собственные построители вычислительных в....302
Глава 11. Асинхронное и параллельное программирование....311
Работа с потоками....312
Асинхронное программирование....320
Асинхронные вычислительные выражения....323
Параллельное программирование....333
Библиотека PFX....335
Глава 12. Рефлексия....346
Атрибуты....346
Рефлексия типов....350
Динамическое создание экземпляров....357
Использование рефлексии....362
Глава 13. Цитирование....371
Основы цитирования....372
Создание цитируемых выражений....382
Приложение A. Обзор библиотек .NET....389
Визуализация....389
Обработка данных....399
Сохранение данных....411
Стандартная библиотека языка F#....416
Приложение B. Взаимодействие программ на F#....422
Взаимодействие с другими языками .NET....423
Взаимодействие с неуправляемым кодом....432
Алфавитный указатель....438
F# – это мультипарадигмальный язык программирования, который не только помогает повысить производительность труда за счет использования функционального стиля разработки, но и позволяет применять при создании приложений уже имеющиеся навыки объектно-ориентированного и императивного программирования. Книга «Программирование на F#» поможет открыть множество преимуществ этого языка, включая возможность доступа ко всем замечательным инструментам и библиотекам платформы .NET.
Это исчерпывающее руководство, написанное Крисом Смитом, одним из основных разработчиков F# компании Microsoft, знакомит с синтаксисом языка, реализацией асинхронных и параллельных вычислений, с расширенными концепциями языка F#, такими как цитируемые и вычислительные выражения.
От читателя не требуется знание конкретных технологий, хотя общий опыт программирования, безусловно, желателен. Единственное требование – это желание воспользоваться преимуществами функционального программирования при разработке своих проектов, будь то реализация численных алгоритмов, анализ данных или сценарии для личного использования. В этом случае издание послужит хорошей отправной точкой на пути изучения фундаментальных и расширенных концепций языка F#.