www.migniot.com

Haskell

April 29, 2014, 11:12 a.m.

Un langage intéressant.

Mes premiers pas en Haskell - je doute qu'un autre langage permette cette approche :

-- is the number n a prime one
isprime 1 = False
isprime n = null [i | i<-primes(floor(sqrt(fromIntegral n))), n `mod` i == 0]

-- iterate primes numbers below n
primes 1 = []
primes n = [i | i<-2:[3,5..n], isprime i]

-- main
main = putStrLn(show(primes(100)))

Le programme ci dessus produit les nombres premiers de 2 à 97, tout en semblant ne contenir aucun code impératif. A méditer.

Suite de la découverte: Une version purement fonctionnelle de factorielle.

-- Wow effect
factorial = foldl1 (*) . (`take` [1..])
main = print $ factorial 100