Система Orphus

Программирование на языке F#

Автор: Крис Смит
Издательство: O'Reilly Media, 2009
416 страниц
ISBN: 0596153643
ISBN: 978-0596153649

Материал предоставил: Сергей Тепляков
Найти в магазинах

Аннотация

Содержание
Комментарии

Аннотация

Why learn F#? This multi-paradigm language not only offers you an enormous productivity boost through functional programming, it also lets you develop applications using your existing object-oriented and imperative programming skills. With Programming F#, you'll quickly discover the many advantages of Microsoft's new language, which includes access to all the great tools and libraries of the .NET platform.

Learn how to reap the benefits of functional programming for your next project -- whether it's quantitative computing, large-scale data exploration, or even a pursuit of your own. With this comprehensive guide, F# team member Chris Smith gives you a head start on the fundamentals and advanced concepts of the F# language.

  • Get a clear understanding of functional programming, and how you can use it to simplify code
  • Gain a solid understanding of the language's core syntax, including object-oriented and imperative styles
  • Simplify concurrent and parallel programming with F# Asynchronous Workflows and the Parallel Extensions to .NET
  • Learn advanced F# concepts, such as quotations and computation expressions
  • Содержание

    Foreword
    Preface
    Part 1. Multiparadigm programming
    1. Introduction to F#
    2. Fundamentals
    3. Functional Programming
    4. Imperative Programming
    5. Object-Oriented Programming
    6. .NET Programming
    7. Applied Functional Programming
    8. Applied Object-Oriented Programming

    Part 2. Programming F#
    9. Scripting
    10. Computation Expressions
    11. Asyncronous and Parallel Programming
    12. Reflection
    13. Quotations

    A. Overview of .NET Libraries
    B. F# Interop
    Index

    Комментарии

    Сергей Тепляков

    Любая методология разработки, инструмент, технология или язык программирования привлекает к себе внимание по разным причинам. Это может быть нечто инновационное и тогда по прошествию десятка или двух лет (!), до него таки дотянутся руки всего остального компьютерного сообщества. Так было практически со всеми идеями, которым пришлось пройти длительный путь от конференций гиков до признания широкой общественностью. Другим способом ворваться в «мейнстрим» является поддержка уже известного вендора, например такого, как компания … Майкрософт. Большинство людей инерционны и не будут вкладывать свои силы в «нонейм» инструменты, пока не удостоверятся, что их капиталовложение будет востребовано. Если же инструментом занимается подобный вендор, то риск изучить что-то, что не пригодится в будущем, очень не велик.

    На самом деле такое мнение весьма близоруко, поскольку при изучении нового инструмента, языка или технологии вы развиваетесь, узнаете что-то новое и включая способности применять эти подходы в другом контексте. Это особенно справедливо, когда речь касается новых парадигм программирования, таких как функциональное программирование, которое само по себе не привязано к конкретному языку или технологии.

    Если говорить о книге Криса Смита «Программирование на языке F#» (Chris Smith “Programming F#”), то в ней можно выделить несколько составляющих. Во-первых, в ней рассказывается о функциональных «фишках», таких как функции первого рода, неизменяемость, сопоставление с образцом (a.k.a. pattern matching), размеченные объединения (discriminated unions), отложенные вычисления, каррирование функций, мемоизация и т.д. Во-вторых, это некоторые функциональные возможности специфичные для языка F#, такие как вычислительные выражения (computation expressions), генерация списков и последовательностей (list comprehensions и sequence comprehensions), асинхронные выражения (async workflow) и др. Третьей составляющей является тема мультипарадигменного программирования в языке F#, в которой автор рассматривает изменяемость, императивное и объектно-ориентированное программирование. Эта тема тесно связана с межъязыковым взаимодействием, которое сводится к использованию из языка F# объектно-ориентированных библиотек, таких как BCL, а также использованию сборок, полученных на языке F# в объектно-ориентированном окружении.

    Мне кажется, что книга будет наиболее полезна читателям уже знакомым с объектно-ориентированным программированием и программированием на платформе .Net, поскольку именно эти темы в книге раскрыты весьма слабо (а неточности в объектной терминологии просто напрягают). Но это не является серьезной проблемой, поскольку книг, посвященных платформе .Net и языку C# достаточно много и попытаться переплюнуть Рихтера или Скита и втиснуть в несколько глав то, чему другие авторы посвящают книги – мало реально. Но с другой стороны, «функциональная сторона» описана достаточно неплохо и информации будет вполне достаточно, чтобы читатель начал применять полученные знания на практике. А поскольку многие современные разработчики как раз таки обладают знаниями в ООП и языке C# и посматривают в сторону функционального программирования, то эта книга будет именно тем, что нужно.

    З.Ы. Да, кстати, эта книга уже очень скоро должна появиться на русском языке. Я не знаю точной даты выхода, но поскольку я закончил ее редактирование пару недель назад, то речь, в любом случае, идет о неделях, а не о месяцах.