Зад.1. Да се напише функцията sumProducts, която приема списък от списъци от числа и връща сумата на всички произведения на числата в даден списък:
sumProducts [[1,2,3], [4,5], [], [-2,3,0,5,1]] -> 27 -- 27 = 6 + 20 + 1 + 0
Зад.2. Да се напише функцията occurrences, която приема два списъка от числа и връща списък от броя срещания на елементите от първия списък във втория:
occurrences [1..6] [1,3,4,3,2,3,3,0,5,3,1] -> [2,1,5,1,1,0]
Зад.3. Да се напише функцията mainDiag, която намира главния диагонал на квадратна матрица от числа:
mainDiag [[1,2,3],[4,5,6],[7,8,9]] -> [1,5,9]
Зад.4. Да се напише функция isSquare, която проверява дали дадена матрица е квадратна:
isSquare [[1,2,3],[4,5,6],[7,8,9]] -> True
isSquare [[1..4],[5..8],[9..12]] -> False
Зад.5. Да се напише функцията sndDiag, която намира вторичния диагонал на квадратна матрица от числа:
sndDiag [[1,2,3],[4,5,6],[7,8,9]] -> [3,5,7]
Зад.6. Да се напише функцията matchLengths, която проверява дали всички списъци от списък със списъци са с еднаква дължина:
matchLengths [[1..4],[0..3],[5,4,8,10]] -> True
matchLengths [[1..4],[0..3],[],[5,4,8,10]] -> False
Зад.7. Да се напише функцията composeList, която връща безкраен списък от композициите на дадена едноаргументна функция f:
let functions = composeList succ in take 5 $ map ($1) $ functions -> [2,3,4,5,6]


Last modified: Wednesday, 20 January 2016, 11:55 PM