F#

Kilka słów o...

O języku słów kilka

  • Powstał w 2005 (Microsoft Research, Cambridge) 
  • @dsyme - Don Syme
  • Pierwsze oficjalne wydanie w 2010
  • Open Source
  • Część .Net
  • Od VS 2012 integralna część VS
  • "Functional first"
  • Obiektowy
  • statycznie typowany
  • Inferencja typów -protoplasta var
  • Data in, data out
  • Immutability
  • Funkcje jako First-class objects
  • Zrównoleglenie

Rodziny typów

  • typ opcja
type option                int option, option<int> 
np. Some 3, Some "3", None.

type list                  int list, list<int>
np. [], [3;2;1].

type1-> type2              int -> string 
np. (fun x -> x+1).

type1* ... * typeN         int * string 
np. (1,"3"), (3,2,1).

type[]                     int[] 

unit unit                  void  
np. () 

'T 'T, 'a, 'Key, 'Value 

"Operatory"

  • let
  • =
  • |>
  • <-
  • fun ->

Składnia

Demo #1

  • Integers and basic functions
  • Booleans
  • Strings
  • Tuples
  • Lists and list processingOne
  • Arrays
  • Sequences

Demo #1

  • Integers and basic functions
  • Booleans
  • Strings
  • Tuples
  • Lists and list processingOne

Dema

  • Inne popularne typy
  • Moduły a klasy
  • Trochę więcej o funkcjach
  • Asynchroniczność i F# a Rx
  • Type Providers

Co w tym fajnego?

  • Prosta/przejrzysta składnia
  • Mniej bugów
  • Szybszy time-to-market
  • Wielowątkowość/asynchroniczność
  • Optymalność względem CPU
  • OpenSource
  •  ...

Gdzie szukać informacji?

Fsharp

By Krzysztof Izdebski