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

F#: обзорное введение

F#: обзорное введение

Олег Заимкин (DataWorks) рассказывает о F#

«F# — современный функциональный язык программирования, работающий на платформе .NET. Этот язык может похвастаться низким порогом вхождения, а также возможностью создавать программы как в привычном объектно-ориентированном, так и в императивном стиле. Выразительность F# позволяет писать втрое меньше кода по сравнению с C# и создавать не менее выразительные встроенные языки (eDSL, Embedded Domain-Specific Languages)»

Остальные лекции: http://techtalks.nsu.ru

E51d363aa46f4d059d54a15e0bcd8e6f?s=128

Tech Talks @NSU

November 17, 2015
Tweet

Transcript

  1. None
  2. Язык программирования F# Обзорное введение Олег Заимкин, ДатаВоркс, Новосибирск

  3. F# MS Research, 2002 OCaml, Haskell, Scala, Erlang F# 1.0,

    2005 F# Software Foundation, 2013 F# 4.0 2015 Don Syme
  4. Строгая типизация Вывод типов АТД, функции высших порядков Неизменяемые данные

    ООП F#
  5. Tools/Env Visual Studio, Xamarin Studio apt-get install mono-complete fsharp FSC,

    FSI Atom + Ionide
  6. Обзор Функции Типы Pattern Matching Computation expressions

  7. Computation Expressions Expression Translation {| let binding in cexpr |}

    let binding in {| cexpr |} {| let! pattern = expr in cexpr |} builder.Bind(expr, (fun pattern -> {| cexpr |})) {| do! expr in cexpr |} builder.Bind(expr1, (fun () -> {| cexpr |})) {| yield expr |} builder.Yield(expr) {| yield! expr |} builder.YieldFrom(expr) {| return expr |} builder.Return(expr) {| return! expr |} builder.ReturnFrom(expr) {| use pattern = expr in cexpr |} builder.Using(expr, (fun pattern -> {| cexpr |})) {| use! value = expr in cexpr |} builder.Bind(expr, (fun value -> builder.Using(value, (fun value -> {| cexpr |})))) {| if expr then cexpr0 |} if expr then {| cexpr0 |} else binder.Zero() {| if expr then cexpr0 if expr then {| cexpr0 |} else {| cexpr1 |}
  8. Что еще? Type Providers Code Quotations Exception handling

  9. Решения Fake Canopy WebSharper, Funscript Suave, Freya …

  10. Применения Макетирование алгоритмов Моделирование предметной области DSL Cценарии тестов Скрипты

    сборки, автоматизации Веб-бэкенд
  11. Почитать http:/ /fsharp.org http:/ /fsharpforfunandprofit.com http:/ /fssnip.net https:/ /en.wikibooks.org/ …

    http:/ /www.charlespetzold.com/blog/2015/10/ Writing-Xamarin-Forms-Apps-in-FSharp.html
  12. Конец.