2013-04-16 3 views

ответ

5

в этой линии

flpile (Pile (a,(b,c)) = Pile [asocr (a,(b,c))] 

вы забыли закрывающую скобку в ( Пайл (а, (б, в)) )

Когда вы исправить это, вы получите ошибка. Это потому, что (a,(b,c)) не является списком, как говорит ваше определение данных. Я не знаю, чего вы хотите достичь с помощью своего кода, но вы можете изменить его на Pile [(a,(b,c))], поэтому он будет компилироваться (если это имеет смысл для вашей цели).

+0

Спасибо, это сработало, я noob в haskell пытается реализовать стек, с некоторыми полезными функциями. – user2278354

7

У вас есть несоответствующая скобка:

flpile (Pile (a,(b,c))) = ... 
        ^this was missing 

Чтобы избежать этой проблемы в будущем, я recommmend включить опцию «выделить соответствующие скобки» в редакторе, если есть один. Если нет, получите лучший редактор.

+0

God Im dumb haha, спасибо, теперь я получаю еще один вид сообщения об ошибке, – user2278354

+1

@ user2278354: Right. Предполагается, что 'Pile' содержит список, но ваш шаблон имеет кортеж. Какую функцию предполагается использовать в списке? Применить одно и то же преобразование ко всем элементам? – hammar

+0

Да, функция меняет ассоциацию элементов. Я сделал это уже уже – user2278354

Смежные вопросы