Oppure

Loading
22/01/17 16:03
DejKry
Salve, sono uno studente universitario di informatica tra 3 giorni ho un esame di programmazione e mi servirebbe comprendere meglio la ricorsione, potreste consigliarmi qualche esercizio su tale argomento?
aaa
22/01/17 19:27
lumo
Prova a dare un'occhiata a questa sezione di learn you a Haskell: learnyouahaskell.com/…

Se fai OCaml o qualche linguaggio funzionale dovresti più o meno capire, altrimenti ti riassumo brevemente quali funzioni ci sono nella pagina:

- maximum: data una lista di elementi ne ritorna quello più grande
- replicate: dati m e n ritorna una lista di n elementi tutti uguali a m
- take: data una lista e un numero n ritorna una lista con i primi n elementi
- reverse: data una lista ritorna la stessa rovesciata
- repeat: questo non farlo perché genera una lista infinita, cosa fattibile in haskell che è un linguaggio lazy ma non penso nel tuo caso
- "quicksort" (in realtà non proprio perché non è in-place), comunque il quicksort scritto ricorsivamente spezzando in due liste , applicando ricorsivamente il quicksort dopo il partitioning degli elementi e poi ricongiunte.

Poi ci sono alcuni classici abbastanza banali, tipo sommare una lista di numeri, oppure farne il prodotto, fibonacci, fattoriale, sequenze di Collatz e così via. In realtà queste ultime due e molte della lista sono casi particolare di una tecnica generale che almeno in haskell si chiama fold (ripiegamento), a volte si chiama reduce in altri linguaggi.
Ultima modifica effettuata da lumo 22/01/17 22:58
aaa
24/01/17 22:19
DejKry
Grazie
aaa