Programmazione funzionale 2012/2013
News
Prove in itinere
Informazioni generali
Il corso coprirà: ricorsione, strutture dati avanzate, sistemi di tipi, funzioni di ordine superiore, valutazione “eager” e “lazy”, programmazione senza effetti collaterali, ma anche imperativa e altro ancora. Verranno anche presentati i presupposti teorici della programmazione funzionale, in particolare il lambda calcolo e l'inferenza di tipo, al fine di migliorare la comprensione del paradigma. Il corso sarà basato sul linguaggio di programmazione funzionale F#, un moderno linguaggio funzionale creato da Microsoft Research, e membro della famiglia di linguaggi di programmazione .NET.
Docenti
Prof. Camillo Fiorentini / Prof. Alberto Momigliano
Corsi di laurea
Orari e luogo delle lezioni
- Mercoledì - 14:15 : 17:00 Via Comelico, 39/41 LABORATORIO Sigma
- Giovedì - 14:15 : 17:00 Via Comelico, 39/41 LABORATORIO Tau
Informazioni specifiche
Siti del corso
Forum del corso, e affini
Testi
Functional Programming using F# , Michael R. Hansen and Hans Rischel, il libro non è ancora disponibile, il professore ha lasciato il draft del libro da fotocopiare per chi vuole alla fotocopisteria in Viale Umbria, 56, per raggiungerla basta arrivare in fondo a via Comelico, attraversare la strada, e li di fianco al bar si trova il negozio.
Altro materiale di riferimento
- Expert F# 2.0: , Don Syme, Adam Granicz, Antonio Cisternino.
- Foundations of F#: Robert Pickering.
Altro materiale in Internet
- Pagina[/http://en.wikibooks.org/wiki/Programming:F_Sharp wiki] sulla programmazione in F#.
- MSDN Library (Microsoft Developer Network).
- Intro to FP: from the Haskell community. Forum sui linguaggi di programmazione: Lambda the ultimate.
Diario del corso
Lezione 1 - 06.03.2013
- Presentazione del corso.
- Perché la programmazione funzionale, perché F#.
- Confronto con la programmazione ad oggetti (java).
- Storia della programmazione funzionale.
Lezione 2 - 07.03.2013
- Presentazione degli strumenti di visual studio per interagire con F#
- Scrittura di programmi sull'interprete e su file, passaggio da file all'interprete
- Presentazione della sintassi generale del linguaggio, comando "let"
- Funzioni in F#, differenti dalle funzioni tipiche degli altri linguaggi
- Tipi di dati, int, float, string, tuple
- Esercizi vari sulle basi del linguaggio
- Sul sito è presente un esercizio che comprende un po' tutto, è stato svolto in classe.
http://cooml.dsi.unimi.it/fp/Lez03/ric.txt
Lezione 3 - 13.03.2013
- Concetto di binding (dare ad un variabile un valore)
- Concetto di enviroment, ambiente di valutazione
- Differenza tra light syntax e verbose syntax, esempi esemplificativi
- Definizione di funzioni ricorsive, esercizi, alcune soluzioni