Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- main :: IO()
- main = do
- print $ "Hello world"
- print $ "Okay, let's go"
- dominates f g xs = and [abs (f x) >= abs (g x) | x <- xs]
- seriesSum :: Double -> Int -> Double
- seriesSum n x = [ s | i <- [1..n], s <- [x^i + fromIntegral (i^2) + 1]]
- listOfIndexes lst = (\x -> [xi + 10 | xi <- lst, x == xi])
- listOfIndexes1 :: Int -> [Int] -> [Int]
- listOfIndexes1 n xs = [ index | (x, index) <- zip xs [0 .. length xs], x == n]
- findNb :: Integer -> Integer
- findNb m = helper m 1
- where
- helper :: Integer -> Integer -> Integer
- helper m i
- | m < i = -1
- | otherwise = helper (m - 1 ^ 3) (i+1)
- kthNumber p xs = (\k -> if length filtered > k then error "No such number" else filtered!!(k-1))
- where
- filtered = filter p xs
- applyEveryKth f k xs = helper 1 xs
- where
- helper :: Int -> [Int] -> [Int]
- helper _ [] = []
- helper i (x:xs)
- | i == k = f x : helper 1 xs
- | otherwise = x : helper (i+1) xs
- speak :: String -> (Char -> String)
- speak str c = foldl (\ acc (pos, x) -> if x == c then acc ++ show pos else acc ++ [x]) [] $ zip str $ reverse [0 .. length str-1]
- iterator f xs = helper xs
- where
- helper :: [Int] -> Bool
- helper [] = True
- helper (x:xs)
- | null xs = True
- | head xs == f x = helper xs
- | otherwise = False
- getIndices xs = (\x -> [(pos1, pos2) | (x1, pos1) <- zip xs [0..], (x2, pos2) <- zip xs [0..], x = x1 + x2 && pos1 /= pos2])
- removeEveryKth n xs = helper xs 1
- where
- helper :: [Int] -> Int -> [Int]
- helper [] _ = []
- helper (x:xs) index
- | index == n = f x : helper xs 1
- | otherwise = x : helper xs (index+1)
- factorize :: Int -> [Int]
- factorize num = helper num 2
- where
- helper :: Int -> Int -> [Int]
- helper 1 _ = []
- helper leftover divs
- | mod leftover divs == 0 = divs : helper (div leftover 10) divs
- | otherwise = helper leftover (divs+1)
- poly xs = (\x -> [n * (x^i) | (n, i) <- zip xs [0 .. length xs]])
- digits :: Int -> [Int]
- digits = map digitToInt . show
- decreasing :: [Int] -> Bool
- decreasing [] = True
- decreasing (x:xs)
- | null xs = True
- | head xs == f x = decreasing xs
- | otherwise = False
- decDigits :: Int -> Bool
- decDigits n = decreasing (digits n)
- dominates f g xs = and [abs (f x) >= abs (g x) | x <- xs]
- seriseSum :: Double -> Int -> Double
- seriesSum n x = [ s | i <- [1..n], s <- [x^i + fromIntegral (i^2) + 1]]
- getIndices xs = (\x -> [(pos1, pos2) | (x1, pos1) <- zip xs [0..], (x2, pos2) <- zip xs [0..], x = x1 + x2 && pos1 /= pos2])
- removeEveryKth n xs = helper xs 1
- where
- helper :: [Int] -> Int -> [Int]
- helper [] _ = []
- helper (x:xs) index
- | index == n = f x : helper xs 1
- | otherwise = x : helper xs (index+1)
- listOfIndexes lst = (\x -> [xi + 10 | xi <- lst, x == xi])
- listOfIndexes1 :: Int -> [Int] -> [Int]
- listOfIndexes1 n xs = [ index | (x, index) <- zip xs [0 .. length xs], x == n]
- factorize :: Int -> [Int]
- factorize num = helper num 2
- where
- helper :: Int -> Int -> [Int]
- helper 1 _ = []
- helper leftover divs
- | mod leftover divs == 0 = divs : helper (div leftover 10) divs
- | otherwise = helper leftover (divs+1)
- poly xs = (\x -> [n * (x^i) | (n, i) <- zip xs [0 .. length xs]])
- kthNumber p xs = (\k -> if length filtered > k then error "No such number" else filtered!!(k-1))
- where
- filtered = filter p xs
- applyEveryKth f k xs = helper 1 xs
- where
- helper :: Int -> [Int] -> [Int]
- helper _ [] = []
- helper i (x:xs)
- | i == k = f x : helper 1 xs
- | otherwise = x : helper (i+1) xs
- digits :: Int -> [Int]
- digits = map digitToInt
- decreasing :: [Int] -> Bool
- decreasing [] = True
- decreasing (x:xs)
- | null xs = 0
- | head xs == f x = decreasing xs
- | otherwise = False
- speak :: String -> (Char -> String)
- speak str c = foldl (\ acc (pos, x) -> if x == c then acc ++ show pos else acc ++ [x]) [] $ zip str $ reverse [0 .. length str-1]
- iterator f xs = helper xs
- where
- helper :: [Int] -> Bool
- helper [] = True
- helper (x:xs)
- | null xs = 0
- | head xs == f x = helper xs
- | otherwise = False
- decDigits :: Int -> Bool
- decDigits n = decreasing (digits n)
- sumDigits n = sum $ map digitToint $ show n
- isInteresting :: Int -> Bool
- isInteresting n = mod n (sumDigits n) == 0
- sumSpecial :: Int -> Int -> Int
- sumSpecial x y = [ d | d <- [x .. y], (elem '6' show d) && mod (d-1) 4 == 0]
- mySin :: Integer -> Integer
- mySin n x = ((-1)**n * x**(2*n+1)) / ((fact $ fromIntegral (2*n+1))) + mySin (n-1) x
- dominates :: (Int -> Int) -> (Int -> Int) -> [Int] -> Bool
- dominates f g xs = all (\x -> f x >= g x) xs
- reverseOrdSuff :: Int -> Int
- reverseOrdSuff n = helper (div n 10) (mod n 10)
- where
- helper :: Int -> Int -> Int
- helper 0 result = 0
- helper leftover result
- | mod leftover 10 > mod result 10 = helper (div leftover 10) (result*10 + mod leftover 10)
- | otherwise = result
- sumUnique :: [[Int]] -> Int
- sumUnique = sum . map onlyUnique
- onlyUnique :: [Int] -> Int
- onlyUnique = sum . concat . filter ((==1) . length) . group . sort
- isInteresting :: Int -> Bool
- isInteresting n = mod n (sum . map digitToInt . show) == 0
- specialSum :: Int -> Int -> Int
- specialSum x y = [ d | d <- [x..y], (elem '6' $ show d) && (mod (d-1) 4 == 0)]
- onlyArithmetic :: (Eq a, Enum a) => [[Int]] -> [[Int]]
- onlyArithmetic xss = [ xs | xs <- xss, isArithmetic xs]
- isArithmetic :: (Eq a, Enum a) => [Int] -> Bool
- isArithmetic xs = length xs < 2 || xs == take (length xs) [xs!!0, xs!!1 ..]
- factoriel :: Int -> Int
- factoriel 0 = 1
- factoriel n = n * factoriel (n-1)
- mySin :: Integer -> Integer
- mySin n x = ((-1)**n * x**(2*n+1)) / (factoriel $ fromIntegral (2*n+1)) + mySin (n-1) x
- dominates :: (Int -> Int) -> (Int -> Int) -> [Int] -> Bool
- dominates f g xs = all (\x -> f x >= g x) xs
- reverseOrdSuff :: Int -> Int
- reverseOrdSuff n = helper (div n 10) (mod n 10)
- where
- helper :: Int -> Int -> Int
- helper 0 result = 0
- helper leftover result
- | mod leftover 10 > mod result 10 = helper (div leftover 10) (result*10 + mod leftover 10)
- | otherwise = result
- sumUnique :: [[Int]] -> Int
- sumUnique = sum . map onlyUnique
- onlyUnique :: [Int] -> Int
- onlyUnique = sum . concat . filter ((==1) . length) . group . sort
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement