Tvor0zhok

Самостоятельная работа Haskell 12.04.2021

Apr 12th, 2021 (edited)
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. -- Задача №1
  2.  
  3. -- 1-ый способ:
  4. allPred1 :: (a -> Bool) -> [a] -> Bool
  5. allPred1 pr [] = True
  6. allPred1 pr (x : xs) = if pr x == False then False else allPred1 pr xs
  7.  
  8. -- 2-ой способ:
  9. allPred2 :: (a -> Bool) -> [a] -> Bool
  10. allPred2 pr [] = True
  11. allPred2 pr (x : xs)
  12. | pr x == False = False
  13. | otherwise = allPred2 pr xs
  14.  
  15. -- 3-ий способ:
  16. allPred3 :: (a -> Bool) -> [a] -> Bool
  17. allPred3 pr [] = True
  18. allPred3 pr (x : xs) =
  19. case pr x of
  20. False -> False
  21. _ -> allPred3 pr xs
  22.  
  23. -- 4-ый способ:
  24. allPred4 :: (a -> Bool) -> [a] -> Bool
  25. allPred4 a = and . map a
  26.  
  27. -- 5-ый способ:
  28. allPred5 :: (a -> Bool) -> [a] -> Bool
  29. allPred5 pr [] = True
  30. allPred5 pr a = foldr1 (&&) $ map pr a
  31.  
  32. -- Задача №2
  33.  
  34. -- 1-ый способ:
  35. anyPred1 :: (a -> Bool) -> [a] -> Bool
  36. anyPred1 pr [] = False
  37. anyPred1 pr (x : xs) = if pr x == True then True else anyPred1 pr xs
  38.  
  39. -- 2-ой способ:
  40. anyPred2 :: (a -> Bool) -> [a] -> Bool
  41. anyPred2 pr [] = False
  42. anyPred2 pr (x : xs)
  43. | pr x == True = True
  44. | otherwise = anyPred2 pr xs
  45.  
  46. -- 3-ий способ:
  47. anyPred3 :: (a -> Bool) -> [a] -> Bool
  48. anyPred3 pr [] = False
  49. anyPred3 pr (x : xs) =
  50. case pr x of
  51. True -> True
  52. _ -> anyPred3 pr xs
  53.  
  54. -- 4-ый способ:
  55. anyPred4 :: (a -> Bool) -> [a] -> Bool
  56. anyPred4 a = or . map a
  57.  
  58. -- 5-ый способ:
  59. anyPred5 :: (a -> Bool) -> [a] -> Bool
  60. anyPred5 pr [] = False
  61. anyPred5 pr a = foldr1 (||) $ map pr a
Add Comment
Please, Sign In to add comment