Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3lab-1_fp

.hs
Скачиваний:
3
Добавлен:
19.01.2023
Размер:
1.88 Кб
Скачать
import List

foo1a = any (even)
foo1b = all (\a-> a<=10)
--------------------------------------------------------------------------------
foo2a _ [] = []
foo2a n (x:xs) = compare n x : foo2a n xs
foo2b _ []= []
foo2b x list = map (compare x) list
foo2c n = map(\list -> compare n list)
--------------------------------------------------------------------------------
foo3a = filter(\x -> notElem x "0123456789")
foo3b l = maximum(snd(unzip(filter((<=8).fst)(zip l [1..]))))
foo3c l = (takeWhile (>minimum l) l, reverse(takeWhile (<maximum l)(reverse l)))
--------------------------------------------------------------------------------
foo4 [] = []
foo4 (x:xs) = ((snd x), (fst x)) : foo4 xs

composition fs gs = map(mapping gs) fs where
mapping :: Eq a => [(a,a)] -> (a,a)->(a,a)
mapping [] g = g
mapping (p:ps) g
| (fst p) == (snd g) = ((fst g), (snd p))
| True = mapping ps g

proection1 [] = []
proection1 (p:ps) = nub ((fst p):(proection1 ps))

proection2 [] = []
proection2 (p:ps) = nub ((snd p):(proection2 ps))

decartmult _ [] = []
decartmult xs (y:ys) = (foo xs y) ++ (decartmult xs ys) where

foo [] _ = []
foo (x:xs) y = (x, y) : (foo xs y)
--------------------------------------------------------------------------------
foo5 a b c = map(\(f1, f2) -> f1 c (f2 a b) == f2 (f1 a c) (f1 b c))
--------------------------------------------------------------------------------
myEq(a,b)(c,d) = compare (abs(a-b*0))(abs(c-d*0))
foo6 = sortBy myEq
--------------------------------------------------------------------------------
p1, p2, p3, p4, p5 :: (Int,Int)->Bool
p1 (x,y) = (mod (x+y) 2) == 0
p2 (x,y) = x > y
p3 (x,y) = (mod x 4) == (mod y 4)
p4 (x,y) = (x + 2*y) < 8
p5 (x,y) = (mod (max x y) 2) == 1

p :: [(Int, Int)]->[(Int,Int)->Bool]->[(Int,Int)]
p xy px = [x | x <-xy, all ($ x) px]








Соседние файлы в предмете Функциональное программирование