Il linguaggio F# (si pronuncia F-Sharp) è un linguaggio di programmazione multi-paradigma comprendente tecniche di programmazione imperativa, object-oriented (vedi Paradigma Object Oriented) e funzionali (vedi Paradigma Funzionale), basato sul Framework .NET di Microsoft.

Il linguaggio F# è sviluppato nell’ambito del programma Microsoft Research dalla F# Software Foundation, da Microsoft e da altri open contributors. Per poter sviluppare con questo linguaggio è necessario installare il compilatore open-source disponibile sul sito della F# Software Foundation, oppure l’ambiente di sviluppo Visual Studio di Microsoft.

Le caratteristiche principali del linguaggio F# comprendono:

  • Forte tipizzazione, i tipi delle espressioni vengono controllati durante la compilazione;
  • Comportamento stict (o call by value), gli argomenti della funzioni vengono valutati prima del corpo della funzione stessa;
  • Approccio multi-piattaforma, è compatibile con diversi sistemi e piattaforme (da Windows ad Android);
  • Capacità di interagire con i linguaggi e le librerie .NET, tra queste troviamo ad esempio il linguaggio C#;
  • Anima impura, nell’approccio funzionale questo termine indica un linguaggio in grado di generare effetti collaterali (side-effects).

Documentazione

Su internet è possibile trovare diversa documentazione utile per migliorare la propria padronanza con il linguaggio, tra queste segnalo ovviamente il sito della F# Software Foundation, la pagina di riferimento di Microsoft docs e di Microsoft MSDN.

Scopo della guida

In questa guida ci concentreremo principalmente sugli aspetti funzionali del linguaggio, analizzeremo inoltre alcuni piccoli esempi applicativi utili a comprendere alcune delle caratteristiche citate. Lo scopo non è comunque quello di coprire il linguaggio F# nella sua interessa. Per ulteriori delucidazioni rispetto al paradigma funzionale si faccia riferimento a questo articolo: Paradigma Funzionale.