Зад.1. Да се напише функция zipWith', която по дадена двуаргументна функция и два списъка връща списък, получен от прилагането на функцията върху съответните елементи на списъците:
zipWith' (+) [1..5] [0.3, 0.4, 0.6] -> [1.3, 2.4, 3.6]

Зад.2. Да се напише функция flip', която разменя аргументите на дадена двуаргументна функция и връща новополучената функция:
(flip' div) 5 10 -> 2

Зад.3. Да се напише функция takeWhile', която приема предикат и списък и връща тези елементи от началото на списъка, които изпълняват предиката:
takeWhile' even [2,4,5,6,7,8] -> [2,4] -- забележете - функцията "спира" при първото срещнато нечетно число и не връща 6 или 8!
Зад.4. Да се напише функция compress, която по списък от стойности връща списък от наредени двойки от вида (<стойност>, <брой последователни срещания>):
compress [1,1,2,3,3,3,4,2,2,2,1,1] -> [(1,2),(2,1),(3,3),(4,1),(2,3),(1,1)]
compress "abba" -> [('a',1),('b',2),('a',1)]
Зад.5. Да се напише функция maxRepeated, която по списък от стойности връща дължината на най-дългия подсписък, съставен от еднакви стойности:
maxRepeated [1,1,2,3,3,3,4,2,2,2,1,1] -> 3
Зад.6. Да се напише функция makeSet, която по даден списък връща всички негови уникални елементи (редът им няма значение):
makeSet [1,1,2,3,3,3,4,2,2,2,1,1] -> [1,2,3,4]
makeSet "abba" -> "ab"
Зад.7. Да се напише функция histogram, която по списък от стойности връща списък от наредени двойки от видя (<стойност>, <общ брой срещания>):
histogram [1,1,2,3,3,3,4,2,2,2,1,1] -> [(1,4),(2,4),(3,3),(4,1)]
Зад.8. Да се напише функция maxDistance, която получава списък от точки (наредени двойки (Double, Double)) и връща дължината на най-дългата отсечка между някои две от тях.
maxDistance [(-1.1, 1), (1.8, 2), (3, 1), (-1, -2)] -> 5
Зад.9. Да се напише функция compositions, която по дадена едноаргументна функция f съставя списък от всички ѝ композиции (започвайки от самата f)
[ g 1 | g <- take 5 (compositions succ) ] -> [2,3,4,5,6]
-- четем: създай списък от стойностите (g 1) за всяко g, взето измежду първите 5 елемента на композициите на функцията succ
Последно модифициране: вторник, 20 декември 2016, 08:57