Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Роман Неволин «Функциональный .NET»

DotNetRu
September 15, 2016

Роман Неволин «Функциональный .NET»

Пожалуй, уже не осталось .NET разработчиков, не слышавших об F#. Но далеко не каждый понимает, что это за язык и зачем рядовому разработчику «эта ваша функциональщина». Самое время это исправить! Мы поговорим как о роли и преимуществах функционального программирования в целом, так и о его использовании в языке F#. Посмотрим на кейсы применения функционального подхода и разберем, как ФП позволяет «проапрегрейдить» ваш код.

DotNetRu

September 15, 2016
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. Сегодня будет Много функционального кода. Много простого функционального кода. Много

    простого функционального кода на слайдах. Естественно, монады (иначе меня просто не поймут).
  2. Функция – это объект (первого класса) Композиция функций. Много композиции.

    Типы вместо классов Неизменяемое состояние (Immutable state) Столпы функционального подхода
  3. Функция – это объект Integer -> String String Integer Employee

    SalaryReport Employee -> SalaryReport HttpReqes t HttpResponse HttpReqest -> HttpResponse
  4. Плохая новость – это работает только для тех функций, которые

    принимают один параметр  Хорошая новость – все функции в F# принимают один параметр! 
  5. Типы вместо классов Is a type Id : Integer Name

    : String User X DateTime = Birthdate (User*DateTime) Производные типы User
  6. Типы вместо классов Is a type Id : Integer Name

    : String User X DateTime = Birthdate (User*DateTime) Производные типы User + Employee = | User of Id*Name | Employee of Id * Position User