Informatica 3. Informatica 3. LEZIONE 9: Introduzione ai linguaggi funzionali. Lezione 9 - Modulo 1. Paradigma funzionale. Linguaggi imperativi

Documenti analoghi
Informatica 3. LEZIONE 9: Introduzione ai linguaggi funzionali. Modulo 1: Introduzione ai linguaggi funzionali Modulo 2: LISP

Le strutture dati in Java: liste, code 1

Programmazione Funzionale

Medie statistiche Processi stazionari Trasformazioni di processi casuali Ergodicità di processi WSS Analisi spettrale di processi WSS

Circuiti dinamici. Circuiti del primo ordine. (versione del ) Circuiti del primo ordine

Esercizi per il corso di Algoritmi

Introduzione alla Programmazione Funzionale

Piano di Lavoro e di Attività Didattica. Classe 3 Sezione. Docente/i. Lorenzo Porcelli. Stefano Punta. Anno scolastico 2013/ 2014.

Informatica teorica Lez. n 12 Introduzione al Lisp. Introduzione al Lisp. Prof. Giorgio Ausiello Università di Roma La Sapienza

SISTEMI LINEARI TEMPO INVARIANTI. Fondamenti Segnali e Trasmissione

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

Corso di Linguaggi di Programmazione

GENERALITA SULLE MACCHINE ELETTRICHE

Corso di Programmazione

Memoria cache. Corso di Laurea in Ingegneria dell Informazione Università degli Studi di Firenze AA 2008/2009

RISPOSTA IN FREQUENZA DEI SISTEMI LINEARI TEMPO INVARIANTI

Esercitazioni di Elettrotecnica: circuiti in regime sinusoidale

SISTEMI LINEARI TEMPO INVARIANTI

Ci domandiamo allora se e sempre possibile rappresentare una funzione in questo modo.

SISTEMI LINEARI TEMPO INVARIANTI

Geometria analitica del piano pag 1 Adolfo Scimone

La risposta di un sistema lineare viscoso a un grado di libertà sollecitato da carichi impulsivi. Prof. Adolfo Santini - Dinamica delle Strutture 1

PROVA SCRITTA DI AUTOMATICA I (Prof. Bittanti, BIO A-K) 10 Settembre 2008 Cognome Nome Matricola

Terza lezione: Processi stazionari

SISTEMI LINEARI TEMPO INVARIANTI

Fondamenti di Automatica Test di autovalutazione n.1 (test di ingresso) può anche essere rappresentato come

Processi stocastici e affidabilità

Il segnale sinusoidale (tratto da: Segnali elettrici, a cura del Dott. M.Scalia, Ing. F.Guidi, Dott. M.Sperini)

Fondamenti di Automatica Test di autovalutazione. può anche essere rappresentato come

x(t) y(t) 45 o x x(t) -2T

ESERCITAZIONE 3 Analisi Classica - Reprise

RISPOSTA IN FREQUENZA DEI SISTEMI LTI. 1 Fondamenti Segnali e Trasmissione

MODELLISTICA E SIMULAZIONE cred.: 5 7,5 Recupero 1 prova: 25 luglio 2005

Modelli stocastici per la volatilità

Indici con gli alberi. Indici su memorie secondarie. Organizzazione logica di un disco

N09 (Quesito Numerico)

Scheme: liste e vettori

Approccio Classico: Metodi di Scomposizione

Analisi Matematica 1 Ingegneria Informatica Gruppo 4, canale 6. Argomenti 19 ottobre 2017

Liceo Scientifico Statale G. Galilei DOLO (VE) PARABOLE IN NATURA

Modelli stocastici per la volatilità

Linguaggi basati sul concetto di funzione e di applicazione di una funzione ad argomenti

Scienze e Tecnologie Applicate L. Agarossi - ITIS P. Hensemberger - Monza

Facoltà di Economia - Università di Sassari Anno Accademico Dispense Corso di Econometria Docente: Luciano Gutierrez

ESPERIENZE INTRODUTTIVE ALL'ELETTRONICA DIGITALE

VALORE EFFICACE DEL VOLTAGGIO

Corso di Programmazione

Equilibrio e stabilità di sistemi dinamici. Stabilità interna di sistemi dinamici

Teoria dei segnali. Unità 2 Sistemi lineari. Sistemi lineari: definizioni e concetti di base. Concetti avanzati Politecnico di Torino 1

Prova di singoli contenitori

RISPOSTA IN FREQUENZA DEI SISTEMI LINEARI TEMPO INVARIANTI

SOLUZIONE. La soluzione del problema viene affrontata secondo due diverse modalità: 1. Approccio analitico; 2. Approccio numerico.

Lezione 2. F. Previdi - Automatica - Lez. 2 1

Circuiti in regime sinusoidale

L'interiorizzazione vocale del codice tonale

IL MODELLO LOGISTICO NEL CASO CONTINUO

POLITECNICO DI MILANO ESAME DI INFORMATICA 3 Prof.ssa Sara Comai Anno Accademico 2003/2004 I Prova in itinere - Laurea On Line SOLUZIONI

1) Determinare la soluzione massimale del problema di Cauchy. 2) Determinare la soluzione massimale del problema di Cauchy.

Sessione ordinaria 2019 Problema2 MATHESIS ROMA. Problema 2

Funzioni discriminanti lineari

Calcolo di integrali - svolgimento degli esercizi

Corso di Programmazione

Controlli Automatici L

e sostituendo il valore =6 si ottiene che:

Lezione n.12. Gerarchia di memoria

Minimi Quadrati Ricorsivi

Il moto in una o più dimensioni

Circuiti in regime periodico non sinusoidale

Moto di un corpo. Descrizione del moto. Moto in 2 dimensioni. È un moto in 1 Dimensione

Grandezze scalari e vettoriali

Fisica Generale Modulo di Fisica II A.A Ingegneria Meccanica - Edile - Informatica Esercitazione 7 CIRCUITI IN REGIME SINUSOIDALE

Piano di Lavoro e di Attività Didattica. Classe 4 Sezione. Docente/i. Lorenzo Porcelli. Stefano Punta. Anno scolastico 2013/ 2014.

Sottoinsieme minimale di istruzioni. Primo programma in C. Tipi di dato. Sottoinsieme minimale di istruzioni. Caratteristiche generali

ALTRE APPLICAZIONI DELLA CRESCITA ESPONENZIALE

Soluzioni degli esercizi di Analisi Matematica I

Economia Politica H-Z Lezione 9

Ist. di economia, Corso di Laurea in Ing. Gestionale, I canale (A-L), A.A Prof. R. Sestini

Titolo unità. Dalla serie alla trasformata di Fourier Proprietà della trasformata di Fourier Uguaglianza di Parseval e principio di indeterminazione

27 DERIVATE DI ORDINI SUCCESSIVI

Ingressi Uscite I S I S T E M A U

Circuiti del I ordine

C2. Introduzione alla cinematica del moto in una dimensione

Lezione 1. Introduzione alle proprietà strutturali. F. Previdi - Controlli Automatici - Lez. 1 1

METODI DECISIONALI PER L'AZIENDA. Dott. Lotti Nevio

UNIVERSITÀ di ROMA TOR VERGATA

Università di Napoli Parthenope Facoltà di Ingegneria

Problemi di Network Flow

Tratto dal Corso di Telecomunicazioni Vol. I Ettore Panella Giuseppe Spalierno Edizioni Cupido. lim. 1 t 1 T

ESERCIZI E ALCUNE SOLUZIONI ANALISI MATEMATICA 1 SETTIMANA 27

Tutoraggio. Lunedì ore Aula 17

Volume FISICA. Elementi di teoria ed applicazioni. Fisica 1

Lezione 2. Sistemi dinamici a tempo continuo. F. Previdi - Fondamenti di Automatica - Lez. 2 1

Corso di Programmazione

0.0.1 Esercizio Q1, tema d esame del 10 settembre 2009, prof. Dario d Amore Testo R 3

Analisi Matematica II Corso di Ingegneria Gestionale Compito del log 1 + x2 y 2

Università di Trieste Facoltà d Ingegneria. Esercitazioni per la preparazione della prova scritta di Matematica 3 Dott. Franco Obersnel. e 5x dx.

Informatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione

3. Il coefficiente di riflessione all interfaccia dipende dalle impedenze caratteristiche dei due mezzi

IL LINGUAGGIO LISP. Marco Broglia

Transcript:

Informaica 3 Informaica 3 LEZIONE 9: Inroduzione ai linguaggi funzionali Modulo 1: Inroduzione ai linguaggi funzionali Modulo 2: LISP Lezione 9 - Modulo 1 Inroduzione ai linguaggi funzionali Poliecnico di Milano - Prof. Sara Comai 1 Poliecnico di Milano - Prof. Sara Comai 2 Linguaggi imperaivi Linguaggi di von Neumann (imperaivi) Concei fondamenali: variabili, assegnameno, sequenza di isruzioni Lo sao di un programma viene manenuo in variabili Si può modificare il valore di una variabile ramie l isruzione di assegnameno l effeo di un programma dipende dall ordine di esecuzione delle isruzioni: il valore della variabile è diverso prima e dopo l assegnameno Una è una sequenza di isruzioni che specifica l algorimo per oenere il risulao desiderao Largo uso dell ierazione Paradigma funzionale Paradigma funzionale: si basa sulla eoria delle funzioni maemaiche Una maemaica associa al valore del dominio un valore nel codominio Una vola specificao il valore del dominio queso non viene cambiao (variabile inesa in senso maemaico) Funzione come mapping: insieme di coppie che legano ogni valore del dominio in un valore del codominio Largo uso della ricorsione e della composizione di funzioni Poliecnico di Milano - Prof. Sara Comai 3 Poliecnico di Milano - Prof. Sara Comai 4

Definizione e applicazione di funzioni Composizione di funzioni e ricorsione Definizione di una : quadrao: ineri--> naurali quadrao(n) n x n -- signaure -- regola di mapping Si possono creare nuove funzioni a parire da alre funzioni F G o H l applicazione di F è equivalene all applicazione di G sul risulao dell applicazione di H paramero (variabile maemaica: rappresena un qualsiasi valore del dominio) Applicazione di una : quadrao(2) risulao: 4 (codominio) argomeno la sosiuzione è di ipo esuale Poliecnico di Milano - Prof. Sara Comai 5 Una può essere definia come combinazione o applicazione di alre funzioni Mole funzioni sono definie in modo ricorsivo: la definizione di una coniene l applicazione della sessa Esempio: n! if n=0 hen 1 else n*(n-1)! Poliecnico di Milano - Prof. Sara Comai 6 Linguaggi funzionali Componeni dei linguaggi funzionali: insiemi di oggei es. lise o array insieme di funzioni predefinie es. funzioni per manipolare le lise o gli array insieme di forme funzionali per cosruire nuove funzioni es. composizione di funzioni Esecuzione di un programma funzionale Si basa sui meccanismi di binding associa un valore alle variabili (valore: dao oppure ) applicazione riorna il valore del codominio Le funzioni manipolano espressioni: cosani, variabili e funori Per valuare un espressione devono essere definii i binding ra variabili e cosani ambiene: maniene ui i binding Il processo di valuazione può essere definio in modo ricorsivo ramie una eval(e), dove e è un espressione: eval(c)=c eval(x)=a se a x viene associao ramie binding il valore a eval(f(e1,e2,,en)) = f(eval(e1), eval(e2),, eval(en)) Poliecnico di Milano - Prof. Sara Comai 7 Poliecnico di Milano - Prof. Sara Comai 8

Informaica 3 Lezione 9 - Modulo 2 LISP Il LISP LIS Processor (McCarhy, 1960) Linguaggio non ipizzao non esisono dichiarazioni di ipo Linguaggio inerpreao Tani dialiei del LISP Anni 80: enaivo di sandardizzazione --> Common LISP Poliecnico di Milano - Prof. Sara Comai 9 Poliecnico di Milano - Prof. Sara Comai 10 S-espressioni S-espressioni: aomi e lise Es. di aomi: a, 4, casa, num1 Es. di lise: (), (a), (a 4 casa), ((a 4) sara (num1)) Vengono uilizzae per rappresenare: dai applicazioni di funzioni definizioni di funzioni Esempi Esempi di S-espressione: 5 dao (+ 1 5 6) applicazione della + agli argomeni 1 5 e 6 (defun quadrao (x) (* x x)) definizione di una Poliecnico di Milano - Prof. Sara Comai 11 Poliecnico di Milano - Prof. Sara Comai 12

Aomi Aomo: numero oppure nome un numero rappresena l r-value un nome rappresena un valore ad esso associao, quindi l l-value Aomi predefinii: numeri: la loro valuazione è il numero sesso : valore booleano vero : valore booleano falso Associazione di un valore ad un simbolo: (seq a 1) -- assegna 1 all aomo a Lise Le lise vengono inerpreae come una sequenza che coniene il nome di una seguia dagli argomeni della (nome- arg1 arg2...) Es. (+ 1 4 5 6) -- 16 (seq a 1) (+ a 2) -- 3 Lise predefinie: Lisa vuoa: () o Oss: () e (()) non rappresenano lo sesso oggeo () è una lisa vuoa (()) è una lisa con un elemeno () Poliecnico di Milano - Prof. Sara Comai 13 Poliecnico di Milano - Prof. Sara Comai 14 Funzioni primiive Funzioni maemaiche: + - * / exp log sqr sin cos an max min... Funzioni per manipolare le lise cosruire le lise: cons, lis e append esrarre dai dalle lise: car (firs) e cdr (res) Cons, Lis e Append cons aggiunge un elemeno in esa alla lisa (cons 1 ) (1) (cons 1 (cons 2 )) (1 2) (cons 1 (a 3 b))??? (cons 1 (a 3 b)) (1 a 3 b) (cons a (b c d)) (a b c d) lis cosruisce una lisa a parire dai suoi argomeni (lis 2 3 4) (2 3 4) (lis a (b c d)) (a (b c d)) (lis) (lis (lis a b) c) ((a b) c) Poliecnico di Milano - Prof. Sara Comai 15 append cosruisce una lisa a parire dai membri delle lise degli argomeni (append 2 3 4) (2 3 4) (append (a b) (c d)) (a b c d) (append (a) () (b)) (a b) (append (a) () ((a) (b))) (a (a) (b)) Poliecnico di Milano - Prof. Sara Comai 16

Car e cdr Alre funzioni sulla lisa (car lisa) o (firs lisa): ha come valore il primo elemeno della lisa (cdr lisa) o (res lisa): ha come valore la lisa privaa del primo elemeno (lengh (1 2 3)) 3 (lengh lisa) 4 lisa=(a (b c) ((d e)) (f)) Esempio: (seq lisa (a (b c) ((d e)) (f))) lisa=(a (b c) ((d e)) (f)) (car lisa) a (cdr lisa) ((b c) ((d e)) (f))) (car (cdr lisa)) (b c) Noa: car e cdr non modificano il valore di lisa! lisa=(a (b c) ((d e)) (f)) (seq lisa (cdr (car (cdr (lisa))))) c (cdr lisa) (aom 1) (aom lisa) (lisp 1) (lisp lisa) Poliecnico di Milano - Prof. Sara Comai 17 Poliecnico di Milano - Prof. Sara Comai 18 Definizione di funzioni e programmi LISP Esempio: che calcola il quadrao di un numero definizione (defun quadrao (num) (* num num)) (* num num) predefinia nome argomeni argomeni corpo della (espressioni da valuare) Un programma LISP viene definio come una! Poliecnico di Milano - Prof. Sara Comai 19 Processo di valuazione Una S-espressione è valuaa dalla eval, all inerno di un ambiene che maniene ui i binding ra le variabili ed i valori Ambiene globale iniziale: : : La viene applicaa ai suoi argomeni viene generao un ambiene locale per la Es. (defun quadrao (num) (* num num)) ambiene globale: viene eseso con il binding ra quadrao e la sua definizione (quadrao 2) l ambiene globale viene eseso con un ambiene locale che lega i parameri formali ai valori dei parameri auali si valua il corpo della si riprisina l ambiene di parenza Poliecnico di Milano - Prof. Sara Comai 20

Esempi: Composizione di funzioni (* (+ a b) (+ a c)) calcola (a+b)*(a+c) (defun h(x) (g (f (x))) definisce h(x)=g(f(x)) Selezione (if <es> <hen> <else>) Esempio: calcolo del valore assoluo di un numero (defun valore-assoluo (x) (if (< x 0) (* x 1) (x))) Poliecnico di Milano - Prof. Sara Comai 21 Poliecnico di Milano - Prof. Sara Comai 22 Selezione (cond (<es1><...><resul1>) (<es2><...><resul2>)... (<esn><...><resuln>)) cond corrisponde al cosruo if-hen-else: cond coniene una sequenza di es che vengono valuai in sequenza fino a quando un es dà valore vero; se nessun es è vero la resiuisce Esempio: calcolo del valore assoluo di un numero (defun valore-assoluo (x) (cond ((< x 0) (* x 1)) ( x))) Oss: qualsiasi valore diverso da è vero (defun valore-assoluo (x) (cond ((< x 0) (* x 1)) (x))) Poliecnico di Milano - Prof. Sara Comai 23 Predicai (= x y ) resiuisce se x e y sono numericamene uguali (= 3 3.0) (equal x y ) resiuisce se x e y hanno la sessa rappresenazione quando vengono sampai (equal 3 3.0) (equal 3 3) (null l) resiuisce se l è la lisa vuoa (null ()) Poliecnico di Milano - Prof. Sara Comai 24

Le Permee di memorizzare il valore in una variabile emporanea (le ((<var> <valore>)... (<var> <valore>)) <espressioni>) Esempio: d = a/b; e = c*d; d = d+e; (le ((d (/ a b))) (+ d (* c d)))) Funzioni ricorsive Ricorsione su una lisa verificare che la lisa non sia erminaa (condizione di erminazione) uilizzare il primo elemeno della lisa applicare la ricorsione sul reso della lisa Esempio 1: calcolo di x elevao a y (defun poenza (x y) (if (= y 0) 1 (* x (poenza x (- y 1))))) Aenzione: condizione di erminazione! Poliecnico di Milano - Prof. Sara Comai 25 Poliecnico di Milano - Prof. Sara Comai 26 Funzioni ricorsive (2) Funzioni ricorsive (3) Esempio 2: conare il numero di elemeni in una lisa (che non coniene lise annidae) (defun cona (lisa) (if (null lisa) 0 (+ 1 (cona (cdr lisa))))) Esempio 3: conare il numero di soo-lise preseni in una lisa (defun cona (lisa) (cond ((null lisa) 0) ((lisp (car lisa)) (+ 1 (cona (cdr lisa)))) ( (cona (cdr lisa)))) Poliecnico di Milano - Prof. Sara Comai 27 Poliecnico di Milano - Prof. Sara Comai 28