Advertisement
Vladi1442

Untitled

Aug 19th, 2022
967
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. main :: IO()
  2. main = do
  3.     print $ "Hello world"
  4.     print $ "Okay, let's go"
  5.  
  6. dominates f g xs = and [abs (f x) >= abs (g x) | x <- xs]
  7.  
  8. seriesSum :: Double -> Int -> Double
  9. seriesSum n x = [ s | i <- [1..n], s <- [x^i + fromIntegral (i^2) + 1]]
  10.  
  11. listOfIndexes lst = (\x -> [xi + 10 | xi <- lst, x == xi])
  12.  
  13. listOfIndexes1 :: Int -> [Int] -> [Int]
  14. listOfIndexes1 n xs = [ index | (x, index) <- zip xs [0 .. length xs], x == n]
  15.  
  16. findNb :: Integer -> Integer
  17. findNb m = helper m 1
  18.     where
  19.         helper :: Integer -> Integer -> Integer
  20.         helper m i
  21.             | m < i = -1
  22.             | otherwise = helper (m - 1 ^ 3) (i+1)
  23.  
  24. kthNumber p xs = (\k -> if length filtered > k then error "No such number" else filtered!!(k-1))
  25.     where
  26.         filtered = filter p xs
  27.  
  28. applyEveryKth f k xs = helper 1 xs
  29.     where
  30.         helper :: Int -> [Int] -> [Int]
  31.         helper _ [] = []
  32.         helper i (x:xs)
  33.             | i == k = f x : helper 1 xs
  34.             | otherwise = x : helper (i+1) xs
  35.            
  36. speak :: String -> (Char -> String)
  37. speak str c = foldl (\ acc (pos, x) -> if x == c then acc ++ show pos else acc ++ [x]) [] $ zip str $ reverse [0 .. length str-1]
  38.  
  39. iterator f xs = helper xs
  40.     where
  41.         helper :: [Int] -> Bool
  42.         helper [] = True
  43.         helper (x:xs)
  44.             | null xs = True
  45.             | head xs == f x = helper xs
  46.             | otherwise = False
  47.  
  48. getIndices xs = (\x -> [(pos1, pos2) | (x1, pos1) <- zip xs [0..], (x2, pos2) <- zip xs [0..], x = x1 + x2 && pos1 /= pos2])
  49.  
  50. removeEveryKth n xs = helper xs 1
  51.     where
  52.         helper :: [Int] -> Int -> [Int]
  53.         helper [] _ = []
  54.         helper (x:xs) index
  55.             | index == n = f x : helper xs 1
  56.             | otherwise = x : helper xs (index+1)
  57.  
  58. factorize :: Int -> [Int]
  59. factorize num = helper num 2
  60.     where
  61.         helper :: Int -> Int -> [Int]
  62.         helper 1 _ = []
  63.         helper leftover divs
  64.             | mod leftover divs == 0 = divs : helper (div leftover 10) divs
  65.             | otherwise = helper leftover (divs+1)
  66.  
  67. poly xs = (\x -> [n * (x^i) | (n, i) <- zip xs [0 .. length xs]])
  68.  
  69. digits :: Int -> [Int]
  70. digits = map digitToInt . show
  71.  
  72. decreasing :: [Int] -> Bool
  73. decreasing [] = True
  74. decreasing (x:xs)
  75.     | null xs = True
  76.     | head xs == f x = decreasing xs
  77.     | otherwise = False
  78.  
  79. decDigits :: Int -> Bool
  80. decDigits n = decreasing (digits n)
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87. dominates f g xs = and [abs (f x) >= abs (g x) | x <- xs]
  88.  
  89. seriseSum :: Double -> Int -> Double
  90. seriesSum n x = [ s | i <- [1..n], s <- [x^i + fromIntegral (i^2) + 1]]
  91.  
  92. getIndices xs = (\x -> [(pos1, pos2) | (x1, pos1) <- zip xs [0..], (x2, pos2) <- zip xs [0..], x = x1 + x2 && pos1 /= pos2])
  93.  
  94. removeEveryKth n xs = helper xs 1
  95.     where
  96.         helper :: [Int] -> Int -> [Int]
  97.         helper [] _ = []
  98.         helper (x:xs) index
  99.             | index == n = f x : helper xs 1
  100.             | otherwise = x : helper xs (index+1)
  101.  
  102. listOfIndexes lst = (\x -> [xi + 10 | xi <- lst, x == xi])
  103.  
  104. listOfIndexes1 :: Int -> [Int] -> [Int]
  105. listOfIndexes1 n xs = [ index | (x, index) <- zip xs [0 .. length xs], x == n]
  106.  
  107. factorize :: Int -> [Int]
  108. factorize num = helper num 2
  109.     where
  110.         helper :: Int -> Int -> [Int]
  111.         helper 1 _ = []
  112.         helper leftover divs
  113.             | mod leftover divs == 0 = divs : helper (div leftover 10) divs
  114.             | otherwise = helper leftover (divs+1)
  115.  
  116. poly xs = (\x -> [n * (x^i) | (n, i) <- zip xs [0 .. length xs]])
  117.  
  118. kthNumber p xs = (\k -> if length filtered > k then error "No such number" else filtered!!(k-1))
  119.     where
  120.         filtered = filter p xs
  121.  
  122. applyEveryKth f k xs = helper 1 xs
  123.     where
  124.         helper :: Int -> [Int] -> [Int]
  125.         helper _ [] = []
  126.         helper i (x:xs)
  127.             | i == k = f x : helper 1 xs
  128.             | otherwise = x : helper (i+1) xs
  129.  
  130. digits :: Int -> [Int]
  131. digits = map digitToInt
  132.  
  133. decreasing :: [Int] -> Bool
  134. decreasing [] = True
  135. decreasing (x:xs)
  136.     | null xs = 0
  137.     | head xs == f x = decreasing xs
  138.     | otherwise = False
  139.  
  140. speak :: String -> (Char -> String)
  141. speak str c = foldl (\ acc (pos, x) -> if x == c then acc ++ show pos else acc ++ [x]) [] $ zip str $ reverse [0 .. length str-1]
  142.  
  143. iterator f xs = helper xs
  144.     where
  145.         helper :: [Int] -> Bool
  146.         helper [] = True
  147.         helper (x:xs)
  148.             | null xs = 0
  149.             | head xs == f x = helper xs
  150.             | otherwise = False
  151.  
  152. decDigits :: Int -> Bool
  153. decDigits n = decreasing (digits n)
  154.  
  155. sumDigits n = sum $ map digitToint $ show n
  156.  
  157. isInteresting :: Int -> Bool
  158. isInteresting n = mod n (sumDigits n) == 0
  159.  
  160. sumSpecial :: Int -> Int -> Int
  161. sumSpecial x y = [ d | d <- [x .. y], (elem '6' show d) && mod (d-1) 4 == 0]
  162.  
  163. mySin :: Integer -> Integer
  164. mySin n x = ((-1)**n * x**(2*n+1)) / ((fact $ fromIntegral (2*n+1))) + mySin (n-1) x
  165.  
  166. dominates :: (Int -> Int) -> (Int -> Int) -> [Int] -> Bool
  167. dominates f g xs = all (\x -> f x >= g x) xs
  168.  
  169. reverseOrdSuff :: Int -> Int
  170. reverseOrdSuff n = helper (div n 10) (mod n 10)
  171.     where
  172.        helper :: Int -> Int -> Int
  173.        helper 0 result = 0
  174.        helper leftover result
  175.             | mod leftover 10 > mod result 10 = helper (div leftover 10) (result*10 + mod leftover 10)
  176.             | otherwise = result
  177.  
  178. sumUnique :: [[Int]] -> Int
  179. sumUnique = sum . map onlyUnique
  180.  
  181. onlyUnique :: [Int] -> Int
  182. onlyUnique = sum . concat . filter ((==1) . length) . group . sort
  183.  
  184.  
  185.  
  186. isInteresting :: Int -> Bool
  187. isInteresting n = mod n (sum . map digitToInt . show) == 0
  188.  
  189. specialSum :: Int -> Int -> Int
  190. specialSum x y = [ d | d <- [x..y], (elem '6' $ show d) && (mod (d-1) 4 == 0)]
  191.  
  192. onlyArithmetic :: (Eq a, Enum a) => [[Int]] -> [[Int]]
  193. onlyArithmetic xss = [ xs | xs <- xss, isArithmetic xs]
  194.  
  195. isArithmetic :: (Eq a, Enum a) => [Int] -> Bool
  196. isArithmetic xs = length xs < 2 || xs == take (length xs) [xs!!0, xs!!1 ..]
  197.  
  198. factoriel :: Int -> Int
  199. factoriel 0 = 1
  200. factoriel n = n * factoriel (n-1)
  201.  
  202. mySin :: Integer -> Integer
  203. mySin n x = ((-1)**n * x**(2*n+1)) / (factoriel $ fromIntegral (2*n+1)) + mySin (n-1) x
  204.  
  205. dominates :: (Int -> Int) -> (Int -> Int) -> [Int] -> Bool
  206. dominates f g xs = all (\x -> f x >= g x) xs
  207.  
  208. reverseOrdSuff :: Int -> Int
  209. reverseOrdSuff n = helper (div n 10) (mod n 10)
  210.     where
  211.         helper :: Int -> Int -> Int
  212.         helper 0 result = 0
  213.         helper leftover result
  214.             | mod leftover 10 > mod result 10 = helper (div leftover 10) (result*10 + mod leftover 10)
  215.             | otherwise = result
  216.  
  217. sumUnique :: [[Int]] -> Int
  218. sumUnique = sum . map onlyUnique
  219.  
  220. onlyUnique :: [Int] -> Int
  221. onlyUnique = sum . concat . filter ((==1) . length) . group . sort
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.    
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement