Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Data.List --см. задание №7
- import Data.Char --см. задание №10
- --Задача №1
- {- log x - функция, которая подсчитывает In x
- logBase a b - функция, которая считает логарифм по основанию a от b
- Например: log 2.718 = 0.999896, logBase 2 8 = 3 -}
- --Задача №2
- sumSquares :: Int -> Int -> Int
- sumSquares x y = x^2 + y^2
- --Задача №3
- lenVec3 :: Double -> Double -> Double -> Double
- lenVec3 x y z = sqrt(x^2 + y^2 + z^2)
- --Задача №4
- infixl 6 *+*
- x *+* y = x^2 + y^2
- --Задача №5
- --1-ый способ:
- signX1 :: Int -> Int
- signX1 x = if x < 0 then -1 else if x > 0 then 1 else 0
- --2-ой способ:
- signX2 :: Int -> Int
- signX2 x
- | x > 0 = 1
- | x == 0 = 0
- | otherwise = -1
- --Задача №6
- --См. тетрадь
- --Задача №7
- {- Функция sort принадлежит модулю List
- Подключается модуль так: import List (см. выше) -}
- --Задача №8
- infix 6 |-|
- x |-| y = abs(x - y)
- --Задача №9
- {- logBase 4 $ min 20 $ 9 + 7 <=> logBase 4 ( min 20 (9 + 7) ) -}
- --Задача №10
- {- toLower :: Char -> Char - функция переводит символы в нижний регистр
- Для работы с этой функцией требуется подключить модуль: import Data.Char
- Пример обращения: toLower 'U' => 'u' -}
- --Задача №11
- --1-ый способ:
- sumPair :: (Int , Int) -> Int
- sumPair (x, y) = x + y
- --2-ой способ:
- sumPair2 :: (Int, Int) -> Int
- sumPair2 = uncurry (+)
- --3-ий способ:
- sumPair3 :: (Int , Int) -> Int
- sumPair3 x = fst x + snd x
- --Задача №12
- --1-ый способ:
- extPair :: (Int, Int) -> [Int]
- extPair (x, y) = [x + y, x * y, x^2 + y^2]
- --2-ой способ:
- extPair2 :: (Int, Int) -> [Int]
- extPair2 x = [f + s, f * s, f^2 + s^2]
- where f = fst x
- s = snd x
- --Задача №13
- --1-ый способ:
- flipPair :: (Int, Int) -> (Int, Int)
- flipPair (x, y) = (y, x)
- --2-ой способ:
- flipPair2 :: (Int, Int) -> (Int, Int)
- flipPair2 x = (snd x, fst x)
- --Задача №14
- makePair :: [Int] -> (Int, Int)
- makePair [x, y, z] = (x + y + z, x * y * z)
- --Задача №15
- {- В терминале записываем:
- let add1 = \x -> x + 1
- В результате, мы задали анонимную функцию
- Функция add1 увеличивает на 1 любое число, функция succ может
- увеличивать на 1 и переменные типа Char. Например, succ 'a' => 'b'
- *Функция pred - прямая противоположность succ -}
Add Comment
Please, Sign In to add comment