Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. test1 :: Int -> Int
  2. test1 x = x + x
  3.  
  4. test2 :: Int -> Int -> Int
  5. test2 x y = (test1 x) ^ (test1 y)
  6.  
  7. max1 :: (Ord a) => a -> a -> a
  8. max1 x y
  9. | x <= y = y
  10. | otherwise = x
  11.  
  12. max2 :: (Ord a) => a -> a -> a -> a
  13. max2 x y z
  14. | (x >= y) && (x >= z) = x
  15. | otherwise = max1 y z
  16. max3 :: (Ord a) => a -> a -> a -> a -> a
  17. max3 x y z n
  18. | (x >= y) && (x >= z) && (x >= n) = x
  19. | otherwise = max2 y z n
  20.  
  21. test3 :: Int -> String
  22. test3 1 = "One"
  23. test3 2 = "Two"
  24. test3 3 = "Three"
  25. test3 x = "Not One, Not Two, Not Three"
  26.  
  27. test4 :: String -> Int
  28. test4 "One" = 1
  29. test4 "Two" = 2
  30. test4 "Three" = 3
  31.  
  32. {-
  33. 1 : 2 : 3 : [] - добавление в список
  34. [] ++ [1] ++ [10] ++ [5] ++ [11..40]
  35. [2, 4 .. 100] - задание четных элементов
  36. head [2..10] - первый элемент
  37. tail [2..10] - все кроме первого
  38. init [2..10] - все кроме последнего
  39. last [2..10] - последний
  40. [0..10]!!1 - элемент под индексом
  41. reverse [1..10] - переворот списка -}
  42.  
  43. myhead :: [a] -> a {-выдает элемент из головы списка-}
  44. myhead [] = error "Nope"
  45. myhead [x] = x
  46. myhead (x:xs){-конструктор списков, x - первый элементы, a xs - остальная часть списка-} = myhead [x]
  47.  
  48. lastel :: [a] -> a {-выдает элемент из головы списка-}
  49. lastel [] = error "Nope"
  50. lastel [x] = x
  51. lastel (x:xs){-конструктор списков, x - первый элементы, a xs - остальная часть списка-} = lastel xs
  52.  
  53. withoutlast :: [a] -> [a] {-выдает элемент из головы списка-}
  54. withoutlast [] = error "Nope"
  55. withoutlast [x,y] = [x]
  56. withoutlast (x:xs){-конструктор списков, x - первый элементы, a xs - остальная часть списка-} = x : withoutlast xs
  57.  
  58. firstlast :: [a] -> [a] {-выдает элемент из головы списка-}
  59. firstlast [] = error "Nope"
  60. firstlast (x:xs){-конструктор списков, x - первый элементы, a xs - остальная часть списка-} = lastel xs : x : withoutlast xs
  61.  
  62. predlast :: [a] -> a {-выдает элемент из головы списка-}
  63. predlast [] = error "Nope"
  64. predlast [x,y] = x
  65. predlast (x:xs){-конструктор списков, x - первый элементы, a xs - остальная часть списка-} = predlast xs
  66.  
  67. withoutpredlast :: [a] -> [a] {-выдает элемент из головы списка-}
  68. withoutpredlast [] = error "Nope"
  69. withoutpredlast [x,y] = [y]
  70. withoutpredlast (x:xs){-конструктор списков, x - первый элементы, a xs - остальная часть списка-} = x : withoutpredlast xs
  71.  
  72. delnsperedi :: [a] -> Int -> [a] {-выдает элемент из головы списка-}
  73. delnsperedi [] y = error "Nope"
  74. delnsperedi z{-(x : xs)-} 0 = z{-x : xs-}
  75. delnsperedi (x:xs) y = delnsperedi xs (y - 1)
  76.  
  77. {-delnszadi :: [a] -> Int -> [a] {-выдает элемент из головы списка-}
  78. delnszadi [] y = error "Nope"
  79. delnszadi [x] (y < 0) = error "Nope"
  80. delnszadi z{-(x : xs)-} 0 = z{-x : xs-}
  81. delnszadi z{-(x : xs)-} y = delnszadi (withoutlast z{-(x : xs)-}) (y - 1)-}
  82.  
  83.  
  84. delnszadi :: [a] -> Int -> [a] {-выдает элемент из головы списка-}
  85. delnszadi [] n = error "Nope"
  86. delnszadi z n
  87. | (n > 0) = delnszadi (withoutlast z) (n - 1)
  88. | (n < 0) = error "Nope"
  89. | otherwise = z
  90.  
  91. delOnN :: [a] -> Int -> [a] {-выдает элемент из головы списка-}
  92. delOnN [] n = error "Nope"
  93. delOnN (x:xs) n
  94. | (n > 1) = x : delOnN xs (n - 1)
  95. | (n < 1) = error "Nope"
  96. | otherwise = xs
  97.  
  98. {-Найти элемент по значению-}
  99. {-Убрать элемент по значению-}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement