parse error on input ‘=’
Напишите функцию, принимающую на вход список булевых значений, число элемен- тов в котором кратно трем, и возвращающую значение, которое получается последо- вательным применением операции «условная дизъюнкция» к k-ой тройке элементов списка (k-ая тройка – это тройка элементов с номерами k, k+1и k+2, k = 1,3,…,n-2). Ре- зультат применения операции к k-ой паре элементов становится (k+2)-ым элементом промежуточного списка. Приведите три примера применения функции;
Я попытался написать ,но выдает ошибку и я хз как фиксить :
calc::[Bool]->Bool
calc [] = False
calc (p:[]) = False
calc (p:q:[]) = False
calc (p:q:r:[]) = ((not q||p)&&(q||r))
calc (p:q:r:xs) = calc(((not q||p)&&(q||r)):r:xs)
и вот что выдаёт компилятор:
21.hs:3:19: parse error on input ‘=’