Упражнение, СИ, 19.12
План:
- Списъци
- let, where, case, guards
Задача 1: Напишете функция compress, която премахва последователните повторения в даден списък:
> compress [1,2,2,2,3,4,3,3,5] [1,2,3,4,3,5]
Задача 2: Напишете функция duplicate, която повтаря всеки от елементите на даден списък:
> duplicate [1..5] [1,1,2,2,3,3,4,4,5,5]
Задача 3: Напишете собствена имплементация на стандартната функция cycle, която съставя безкраен списък, повтаряйки циклично даден списък:
> take 10 . cycle $ [1..3] [1,2,3,1,2,3,1,2,3,1]
> quickSort [1,4,2,1,4,3,2,3] [1,1,2,2,3,3,4,4]
> mergeSort [1,4,2,1,4,3,2,3] [1,1,2,2,3,3,4,4]
Задача 6: Напишете собствена имплементация на стандартните функции zip и unzip:
> zip [1..5] [3..100] [(1,3),(2,4),(3,5),(4,6),(5,7)] > unzip [(1,3),(2,4),(3,5),(4,6),(5,7)] ([1,2,3,4,5],[3,4,5,6,7])
Задача 7: Преложете реализация на стандартната функция reverse:
> reverse [1..5] [5,4,3,2,1]
Задача 8: Преложете реализация на стандартната функция iterate:
> take 5 $ iterate (*2) 1 [1,2,4,8,16]
Последно модифициране: понеделник, 19 декември 2016, 17:22