




























































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Knowledge Discovery nella Diagnosi di Sistemi Attivi
Tipologia: Dispense
1 / 120
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































































Definire nel linguaggio funzionale Scheme la funzione reverse , che computa l’inverso di una lista A di atomi in ingresso. Ecco alcuni esempi:
A reverse () () (a) (a) (a b c d) (d c b a)
Definire nel linguaggio funzionale Scheme la funzione reverse , che computa l’inverso di una lista A di atomi in ingresso. Ecco alcuni esempi:
( define (reverse A) ( if (null? A) () (append (reverse (cdr A)) (list (car A))) ) )
A reverse () () (a) (a) (a b c d) (d c b a)
Definire nel linguaggio funzionale Scheme la funzione spec , avente in ingresso una lista L , che restituisce la lista speculare di L , come nei seguenti esempi:
( define (spec L) ( if (null? L) () (append (spec (cdr L))(list ( if (atom? (car L)) (car L) (spec (car L)) ) ) ) ) )
L spec L () () (A) (A) (A B) (B A) (A (B C)) ((C B) A) (A (B C) (D (E F)) G) (G ((F E) D) (C B) A)
Definire nel linguaggio funzionale Scheme la funzione natoms , avente in ingresso una lista L , che computa il numero di elementi atomici (non liste) di L. Ecco alcuni esempi:
L natoms () 0 (()()(A)) 1 (A (B C)) 3 (A (B C) (D ())) 4
Definire nel linguaggio Scheme la funzione atomi , avente in ingresso una lista , che computa la lista degli elementi atomici (non liste) di lista. Ecco alcuni esempi:
lista atomi (()()) () (A (B C)) (A B C) ((A B) C (D (E F) G)) (A B C D E F G)
Definire nel linguaggio Scheme la funzione atomi , avente in ingresso una lista , che computa la lista degli elementi atomici (non liste) di lista. Ecco alcuni esempi:
lista atomi (()()) () (A (B C)) (A B C) ((A B) C (D (E F) G)) (A B C D E F G)
( define (atomi lista) ( if (null? lista) () ( if (atom? (car lista)) (cons (car lista) (atomi (cdr lista))) (append (atomi (car lista)) (atomi (cdr lista))) ) ) )
Definire nel linguaggio funzionale Scheme la funzione occ , avente in ingresso un elemento x ed una lista , che restituisce il numero di occorrenze di x in lista :
lista x occ x lista () a 0 (a) a 1 (b a b) b 2 (c (c d) a c) c 2 (a (b c) (c b) (d (b c)) b (b c) (b c) a) (b c) 3 (a () (b ()) () c) () 2
( define (occ x lista) ( if (null? lista) 0 ( if (equal? x (car lista)) (+ 1 (occ x (cdr lista))) (occ x (cdr lista)) ) ) )
Definire nel linguaggio funzionale Scheme la funzione select , avente in ingresso una funzione fun ed una sequenza lista. Si assume che la funzione fun sia unaria e computi un valore booleano. La funzione select restituisce la sotto-sequenza (eventualmente vuota) di lista comprendente gli elementi che rendono la funzione fun vera, come nei seguenti esempi:
lista fun ( select fun lista ) () number? () (a 3 125 (x y)) number? (3 125) (a 3 () x (2 d 12) 125) atom? (a 3 x 125) (c (c d) a c (2 3 4)) list? ((c d) (2 3 4)) (1 (2 (3 4 x) z) 34 () y) list? ((2 (3 4 x) z) ()) (1 2 3 x y z) list? ()
Definire nel linguaggio funzionale Scheme la funzione cancella , avente in ingresso un elemento ed una lista , che computa la lista risultante dalla cancellazione di tutte le istanze di elemento in lista , come nei seguenti esempi:
elemento lista (^) ( cancella elemento lista ) 3 () () 3 (3) () 3 (1 2 3) (1 2) 3 (1 2 3 4 3 5 3) (1 2 4 5) (1 2) ((1 2) (3 4) 5) ((3 4) 5) () (1 2 3 () (4 5) () 6) (1 2 3 (4 5) 6)
Definire nel linguaggio funzionale Scheme la funzione cancella , avente in ingresso un elemento ed una lista , che computa la lista risultante dalla cancellazione di tutte le istanze di elemento in lista , come nei seguenti esempi:
elemento lista (^) ( cancella elemento lista ) 3 () () 3 (3) () 3 (1 2 3) (1 2) 3 (1 2 3 4 3 5 3) (1 2 4 5) (1 2) ((1 2) (3 4) 5) ((3 4) 5) () (1 2 3 () (4 5) () 6) (1 2 3 (4 5) 6)
( define (cancella elemento lista) ( if (null? lista) () ( if (equal? (car lista) elemento) (cancella elemento (cdr lista)) (cons (car lista) (cancella elemento (cdr lista))))))
Definire nel linguaggio funzionale Scheme la funzione zip , avente in ingresso due liste, lista1 e lista2 , che computa la lista di coppie di elementi che sono nella stessa posizione nelle rispettive liste, come nei seguenti esempi:
lista1 lista2 (^) ( zip lista1 lista2 ) () () () () (1 2) () (1 2 3) () () (a b c) (1 2 3 4) ((a 1)(b 2)(c 3)) (() 1 (a b)) (() (3 4) 5 zeta) ((()())(1 (3 4))((a b) 5))
( define (zip lista1 lista2) ( if (or (null? lista1)(null? lista2)) () (cons (list (car lista1) (car lista2)) (zip (cdr lista1) (cdr lista2)))))
Definire nel linguaggio funzionale Scheme la funzione shrink , avente in ingresso una lista L , che computa la lista degli elementi di L che si trovano in posizione dispari, come nei seguenti esempi:
L ( shrink L ) () () (a) (a) (a b) (a) (a b c) (a c) (a (1 2 3) (4 5 (6 7)) 8 ()) (a (4 5 (6 7))())
Definire nel linguaggio funzionale Scheme la funzione remdup , avente in ingresso una lista L , che computa la lista degli elementi di L senza duplicazioni, come nei seguenti esempi:
L ( remdup L ) () () (a) (a) (a b) (a b) (a b a) (b a) (a b a b a c d a) (b c d a) ((a b)(a b c)(a b) 3 4 ()) ((a b c) (a b) 3 4 ()) ((a b)(2 (a b)) c (a b) 10) ((2 (a b)) c (a b) 10)
Definire nel linguaggio funzionale Scheme la funzione remdup , avente in ingresso una lista L , che computa la lista degli elementi di L senza duplicazioni, come nei seguenti esempi:
L ( remdup L ) () () (a) (a) (a b) (a b) (a b a) (b a) (a b a b a c d a) (b c d a) ((a b)(a b c)(a b) 3 4 ()) ((a b c) (a b) 3 4 ()) ((a b)(2 (a b)) c (a b) 10) ((2 (a b)) c (a b) 10)
( define (remdup L) ( if (null? L)() ( if (member (car L)(cdr L)) (remdup (cdr L)) (cons (car L)(remdup (cdr L))))))