Perchè l'essere pigri può semplificarci le cose (lo sto dicendo solo per giustificare il mio stile di vita)
In ogni caso: vi volevo portare qualche piccolo esempio in cui l'essere pigri permette permette di implementare alcune cose in modo semplice e compatto!
Se volete poi metto la spiegazione del codice, nel caso non risulti intuitivo
P.s. io ho utilizzato haskell ma cose simili sono possibili anche in altri linguaggi, ad esempio Clojure è pure molto adatto!
codice:--fibonacci fibonacci = (fibonacci'!!) where fibonacci' = 1 : 1 : zipWith (+) fibonacci' (tail fibonacci') --crivello di Erastotene primes = (primes'!!) where primes' = 2 : dropMuls [3,5..] dropMuls (x:xs) = x : dropMuls [a | a <- xs, (a `mod` x) /= 0] --in alternativa se non si vuole usare la list comprehension --dropMuls (x:xs) = x : dropMuls (filter ((/=0) . (`mod`x)) xs) --piramide di tartaglia tartaglia = (tartaglia'!!) where tartaglia' = [1] : map tartaglia'' tartaglia' tartaglia'' xs = 1 : zipWith (+) xs (tail xs) ++ [1]