Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


esercizi linguaggio scheme, Dispense di Tecniche E Linguaggi Di Programmazione

Knowledge Discovery nella Diagnosi di Sistemi Attivi

Tipologia: Dispense

2018/2019

Caricato il 02/05/2019

jack-pagoda
jack-pagoda 🇮🇹

5

(5)

40 documenti

1 / 120

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Esercizio 1
Definire nel linguaggio funzionale Scheme la funzione reverse, che computa l’inverso di una lista A di
atomi in ingresso. Ecco alcuni esempi:
Linguaggi di Programmazione Esercizi Scheme
1
A reverse
() ()
(a) (a)
(a b c d) (d c b a)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica esercizi linguaggio scheme e più Dispense in PDF di Tecniche E Linguaggi Di Programmazione solo su Docsity!

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))))))