You are on page 1of 2

subtract5 :: [Int]->[Int]

subtract5 = map (+(-5))(lista)

inc5 :: [Int]->[Int]
inc5 = map (+5)(lista)

replicateTriple :: [Int] -> [Int]


replicateTriple = concatMap (replicate 3)

saberiDrugiCetvrti :: Num a => a -> a -> a -> Maybe a -> a


saberiDrugiCetvrti drugi treci cetvrtiMozeBiti cetvrti = case cetvrtiMozeBiti of
Just cetvrtiVrednost -> drugi + cetvrtiVrednost
Nothing -> drugi

sviIsti :: [Int] -> [Int] -> [Int] -> Bool


sviIsti x y z = (x == y) && (y == z)

izracunaj :: Double -> Double


izracunaj x = x + 2*x + x/2

izracunajZbir :: Int -> Int -> Int


izracunajZbir n m
| n > m = 0
| otherwise = n + izracunajZbir (n + 1) m

replicirajUNizTrojki :: [Int] -> [[Int]]


replicirajUNizTrojki = map (\x -> replicate 3 x)

--Normalni oblik
-- Počnemo s izrazom λk.k*k+1)((λm.m+1)2).
-- Prvo primijenimo izraz λm.m+1 na broj 2. To možemo učiniti zamjenom m sa 2
unutar izraza λm.m+1:
-- (λk.k*k+1)(2+1)
-- Sada imamo izraz 2+1 unutar izraza λk.k*k+1. To možemo izračunati:
-- (λk.k*k+1)3
-- Sada imamo 3 unutar izraza λk.k*k+1. Zamjenjujemo k sa 3:
-- 3*3+1
-- Izračunavamo izraz 3*3+1:
-- 9+1
-- Konačno, izračunavamo 9+1:
-- 10

main :: IO ()
main = do
let niz = [10..30] -- Definišemo listu brojeva od 10 do 30
let oduzmiPet = subtract5 niz -- Oduzimamo 5 od svakog elementa
let dodajPet = inc5 niz -- Dodajemo 5 svakom elementu
let trostruki = replicateTriple niz -- Trostruko ponavljamo svaki element
let daLiSuIsti = sviIsti niz niz niz -- Proveravamo da li su sve liste iste
let izracunato = map izracunaj niz -- Računamo koristeći funkciju izracunaj
let zbir = izracunajZbir 10 30 -- Računamo zbir brojeva od 10 do 30
let repliciranoUTrojkama = replicirajUNizTrojki niz -- Trostruko repliciramo
brojeve
let saberidrugicet = saberiDrugiCetvrti 2 1 5
-- Ispisujemo rezultate ili vršimo druge radnje prema potrebi
print oduzmiPet
print dodajPet
print trostruki
print daLiSuIsti
print izracunato
print zbir
print repliciranoUTrojkama

-- Koristimo mapM_ da ispišemo celu listu brojeva od 10 do 30


mapM_ print [10..30]

You might also like