Programmazione funzionale 2012/2013

Da WikiDsy.


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

Altro materiale in Internet

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