module Main where
import IO
readNum :: IO Integer
readNum = readLn
- – define divisors set:
divisors :: Integer -> [Integer]
divisors n = [m | m <- [1 .. n], n `mod` m == 0]

- – In mathematics, “a prime number” (or “a prime”) is a natural number
– – which has exactly two distinct natural number divisors: 1 and itself
isPrime :: Integer -> Bool
isPrime 0 = False
isPrime 1 = False
isPrime n = (divisors n) == [1, n]
- – returns all Prime numbers from 0 to a by filtering Integer set
primes :: Integer -> [Integer]
primes a = filter isPrime [1 .. a]
main = do
hSetBuffering stdout NoBuffering
putStr “Enter A: ”
a <- readNum
print (primes a)
October 16th, 2008 in
Haskell |
No Comments
– functional FOR: a, b – interval set (Integer), f – “FOR”-internal block
for :: Integer->Integer->(Integer->IO())->IO()
for a b f = foldr ((>>).f) (return()) [a..b]
– functional FOR: a, b – interval set (Any type), f – “FOR”-internal block
for :: (Enum a, Monad m) => a -> a -> (a -> m b) -> m ()
for a b f = mapM_ f [a..b]
–using:
for 1 100 somekindofprocedure
October 16th, 2008 in
Haskell |
No Comments
- – functional FOR where: [a, b] – interval set, f – “FOR”-internal block:
for::Integer->Integer->(Integer->IO())->IO()
for a b f = foldr ((>>).f) (return()) [a..b]
- – printing prime numbers using functional FOR:
printRec2 a = do
for 1 a ch
- – printing prime numbers using recursion:
printRec a = do
if ( a > 1 )
then do
printRec (a-1)
ch a
else return()
- – procedure-printer:
ch a = do
if pr a
then putStr ( “The ” ++ show(a) ++ ” is a Prime number” ++ “\n” )
else return()
Full code: Read the rest of this entry »
October 14th, 2008 in
Haskell |
No Comments
module Main where
import IO
– function ost( A, B ) returns residue of division of A number by B number
ost :: Integer -> Integer -> Integer
ost a b | a >= b = ost (a-b) b
ost a b | a < b = a
– In mathematics, “a prime number” (or “a prime”) is a natural number
– which has exactly two distinct natural number divisors: 1 and itself
pr :: Integer -> Bool
pr 1 = False
pr 2 = True
pr n = dne n 2 (n-1)
–ned A B C == “There is no devisors of A at [B,C] segment”
dne :: Integer -> Integer -> Integer -> Bool
dne a b c | b == c = (ost a b /= 0)
dne a b c | b > c = True
dne a b c | b < c = (dne a b (c-1))&&(dne a c c)
readNum :: IO Integer
readNum = readLn
main = do
hSetBuffering stdout NoBuffering
putStr “Enter A: ”
a <- readNum
putStr (“The “++ show (a) ++ ” is a Prime number = ” ++ show (pr a) ++ “\n”)
October 13th, 2008 in
Haskell |
No Comments
module Main where
import IO
– function ost(a,b) returns residue of division of A number by B number
ost :: Integer -> Integer -> Integer
ost a b | a >= b = ost (a-b) b
ost a b | a < b = a
readNum :: IO Integer
readNum = readLn
main = do
hSetBuffering stdout NoBuffering
putStr “Enter A: ”
a <- readNum
putStr “Enter B: ”
b <- readNum
putStr (“residue of division of the A number by the B number = ” ++ show (ost a b) ++ “\n”)
October 13th, 2008 in
Haskell |
No Comments
module Main where
import IO
fact :: Integer -> Integer
fact 0 = 1
fact n = n * fact (n – 1)
readNum :: IO Integer
readNum = readLn
main = do
hSetBuffering stdout NoBuffering
putStr “Enter a: ”
a <- readNum
putStr (“a! = ” ++ show (fact(a)) ++ “\n”)
October 13th, 2008 in
Haskell |
No Comments
module Main where
import IO
main = do
hSetBuffering stdout NoBuffering
putStr “Enter a: ”
x1 <- readNum
putStr “Enter b: ”
x2 <- readNum
putStr (“a + b = ” ++ show (x1+x2) ++ “\n”)
where readNum :: IO Integer
readNum = readLn
October 13th, 2008 in
Haskell |
No Comments
module Main where
fact :: Integer -> Integer
fact 0 = 1
fact n = n * fact (n – 1)
main = print (fact 1000)
October 13th, 2008 in
Haskell |
No Comments
1
2
3
4
5
| module Main where
main = printRec 1
printRec 100000 = print 100000
printRec i = do print i
printRec (i+1) |
October 9th, 2008 in
Haskell |
No Comments