Lab2_PF
unknown
plain_text
2 years ago
2.6 kB
8
Indexable
--Exercitiul 1 poly2 :: Double -> Double -> Double -> Double -> Double poly2 x a b c = a * x * x + b * x + c --Exercitiul 2 eeny :: Integer -> String eeny x | even x = "eeny" | otherwise = "meeny" --Exercitiul 3 fizzbuzz :: Integer -> String fizzbuzz x | x `mod` 15 == 0 = "FizzBuzz" | x `mod` 3 == 0 = "Fizz" | x `mod` 5 == 0 = "Buzz" | otherwise = "" fizzbuzz' :: Integer -> String fizzbuzz' x = if(mod x 15 == 0) then "FizzBuzz" else if(mod x 3 == 0) then "Fizz" else if(mod x 5 == 0) then "Buzz" else "" fibonacciCazuri :: Integer -> Integer fibonacciCazuri n | n < 2 = n | otherwise = fibonacciCazuri (n - 1) + fibonacciCazuri (n - 2) fibonacciEcuational :: Integer -> Integer fibonacciEcuational 0 = 0 fibonacciEcuational 1 = 1 fibonacciEcuational n = fibonacciEcuational (n - 1) + fibonacciEcuational (n - 2) tribonacciCazuri :: Integer -> Integer tribonacciCazuri n | n < 1 = 0 | n <= 2 && n >= 1 = 1 | otherwise = tribonacciCazuri(n-1) + tribonacciCazuri(n-2) + tribonacciCazuri(n-3) tribonacciEcuational :: Integer -> Integer tribonacciEcuational 0 = 0 tribonacciEcuational 1 = 1 tribonacciEcuational 2 = 1 tribonacciEcuational 3 = 2 tribonacciEcuational n = tribonacciEcuational(n-1) +tribonacciEcuational(n-2) +tribonacciEcuational(n-3) binomial :: Integer -> Integer -> Integer binomial n k | k == 0 = 1 | n == 0 = 0 | otherwise = (binomial (n - 1) k) + (binomial (n - 1) (k - 1)) verifL :: [Int] -> Bool verifL v | mod (length v) 2 == 0 = True | otherwise = False takefinal :: [a] -> Int -> [a] takefinal v n | (length v) <= n = v | otherwise = drop ((length v) - n) v remove :: [Int] -> Int -> [Int] remove v n = concat[(take (n - 1) v), (drop (n) v)] -- semiPareRec [0,2,1,7,8,56,17,18] == [0,1,4,28,9] semiPareRec :: [Int] -> [Int] semiPareRec [] = [] semiPareRec (h:t) | even h = h `div` 2 : t' | otherwise = t' where t' = semiPareRec t myreplicate :: Int -> a -> [a] myreplicate n v | n == 0 = [] | otherwise = v:myreplicate (n - 1) v sumImp :: [Int] -> Int sumImp [] = 0 sumImp (h:t) | mod h 2 == 1 = h + t' | otherwise = t' where t' = sumImp t totalLen :: [String] -> Int totalLen [] = 0 totalLen (h:t) | take 1 h == "A" = (length h) + t' | otherwise = t' where t' = totalLen t
Editor is loading...