Ciao a tutti...
Ho scritto una funzione in Haskell che crea una lista di interi, così:
Se l'argomento è 0, ritorna la lista che contiene solo 0, se l'argomento è diverso da 0, aggiunge l'argomento alla lista dei numeri prima di lui... in praticacodice:listDown 0 = [0] listDown x = x : listDown (x-1)
E fin qui tutto bene... però non riesco a scrivere una funzione che faccia l'opposto, ovvero che crei la lista in ordine crescente!codice:listDown 3 == 3: (2: (1: ([0]))) == 3:2:1:[0]
Questo perchè i 2 punti (l'operatore cons) permettono di aggiungere un oggetto solo in testa alla lista...
e quindi non so come scriverlo... ovviamente un modo ci deve essere, ma non riesco a capire come scriverlo in modo ricorsivo... qualche idea?codice:1:[2,3,4] == [1,2,3,4] [4,3,2]:1 --> errore [4,3]:[2,1] --> errore![]()

Rispondi quotando