Зад.1. Да се напише функция replicate', която конструира списък от n повторения на даден обект:
replicate' 5 10 -> [10,10,10,10,10]
Зад.2. Използвайте foldr или foldl, за да напишете следните функции:
- minimum'/maximum'
- reverse'
- length'
- all'/any'
- append'
- replicate'
- makeSet' (вж. по-долу)

Зад.3. Използвайте list comprehension, за да напишете следните функции:
- брой/сума на делителите на дадено число
- проверка дали дадено число е просто
- descartes - декартово произведение на два списъка

Зад.4. Да се генерира безкрайния списък primes от прости числа:
take 5 primes -> [2,3,5,7,9]
Зад.5*. Да се генерира безкрайния списък от прости числа по метода на ситото на Ератостен.
Зад.6. Да се генерира безкраен списък, който съдържа всички наредени двойки от естествени числа.
Упътване: какъв резултат ще върне извикването на elemIndex (2,3) върху Вашия списък?
Зад.7. Да се генерира безкраен списък, който съдържа всички Питагорови тройки: наредени тройки от естествени числа, които могат да бъдат страни на правоъгълен триъгълник
Зад.8. Да се напише функция compress, която по списък от стойности връща списък от наредени двойки от вида (<стойност>, <брой последователни срещания>):
compress [1,1,2,3,3,3,4,2,2,2,2,1] -> [(1,2),(2,1),(3,3),(4,1),(2,4),(1,1)]
compress "abba" -> [('a',1),('b',2),('a',1)]
Зад.9. Да се напише функция maxRepeated, която по списък от стойности връща дължината на най-дългия подсписък, съставен от еднакви стойности:
maxRepeated [1,1,2,3,3,3,4,2,2,2,2,1,1] -> 4
Зад.10. Да се напише функция makeSet, която по даден списък връща всички негови уникални елементи (редът им няма значение):
makeSet [1,1,2,3,3,3,4,2,2,2,1,1] -> [1,2,3,4]
makeSet "abba" -> "ab"
Зад.11. Да се напише функция histogram, която за всяка уникална стойност от даден списък връща списък от наредени двойки от вида (<стойност>, <общ брой срещания>):
histogram [1,1,2,3,3,3,4,2,2,2,1,1] -> [(1,4),(2,4),(3,3),(4,1)]
Зад.12. Да се напише функция maxDistance, която получава списък от точки (наредени двойки (Double, Double)) и връща дължината на най-дългата отсечка между някои две от тях.
maxDistance [(-1.1, 1), (1.8, 2), (3, 1), (-1, -2)] -> 5.0

Последно модифициране: четвъртък, 29 ноември 2018, 11:39