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

Tech Talks @NSU

November 17, 2015
Tweet

More Decks by Tech Talks @NSU

Other Decks in Education

Transcript

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

    2005 F# Software Foundation, 2013 F# 4.0 2015 Don Syme
  2. 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 |}
  3. Почитать 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