Antonio Cisternino Ricercatore Dipartimento di Informatica Università di Pisa
Agenda Il linguaggio F# Il linguaggio F# Il toolset Il toolset Demo Demo – F# bits – F# interactive – VSLab Applications and performances Applications and performances
F# F# nasce come un port del linguaggio OCaml per.NET F# nasce come un port del linguaggio OCaml per.NET Don Syme lavora su un’estensione all’IL, ILX, per supportare l’interoperabilità tra linguaggi funzionali Don Syme lavora su un’estensione all’IL, ILX, per supportare l’interoperabilità tra linguaggi funzionali Introduce nel mainstream della programmazione concetti studiati per 20 anni nell’accademia Introduce nel mainstream della programmazione concetti studiati per 20 anni nell’accademia
Caratteristiche Type-inference Type-inference Stile di programmazione funzionale- imperativo Stile di programmazione funzionale- imperativo Influenzato da Haskell Influenzato da Haskell Supporto per la meta-programmazione Supporto per la meta-programmazione Supporto OOP completo e diverso da OCaml Supporto OOP completo e diverso da OCaml Integrazione completa in.NET Integrazione completa in.NET Il patten matching Il patten matching
Il toolset Integrazione in Visual Studio completa di IntelliSense Integrazione in Visual Studio completa di IntelliSense Type inference integrata nell’editor Type inference integrata nell’editor Debugger.NET Debugger.NET F# Interactive!!! F# Interactive!!! Esecuzione da command line Esecuzione da command line Supporto per Mono Supporto per Mono
Applicazioni Unmutable state -> concorrenza Unmutable state -> concorrenza Facilità di esprimere formule matematiche -> Scientific Computing Facilità di esprimere formule matematiche -> Scientific Computing Interattività -> Scripting e system management Interattività -> Scripting e system management
F# on mono
More information
Conclusioni Per la prima volta dai tempi di Java ho guardato un linguaggio ed ho realizzato che era un salto, che non avrei più programmato volentieri in linguaggi usati fino ad allora e che mi sembravano molto espressivi. F# è l’anello mancante tra i linguaggi compilati e quelli dinamici. Antonio CIsternino