У меня есть функция larg, она находит первое число из списка кратное 3829,но я не совсем понимаю "where p x = mod x 3829 == 0" .То есть x - это число,но как "выдавливается "x из списка ,если мы даже не указали явно "голову" списка или этим занимается head???
larg :: [Integer]->Integer
larg x= head (filter p x)
where p x = mod x 3829==0
"Выдавливанием" из списка занимается `filter`, применяя функцию `p` к каждому элементу на входе.
Если она возвращает True (т.е. когда остаток от деления равен нулю), то элемент зачисляется в выходной список.
`head` тут берёт первый элемент из уже отфильтрованного списка. Или крашится с сообщением вроде "head: empty list" и лучше бы её заменить на `case`.