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 ‘=’


Ответы (0 шт):