não possui uma ligação de acompanhamento - O que isso significa?Como funciona?
-
12-12-2019 - |
Pergunta
Estou praticando com LYAH.
O arquivo phoneBook.hs contém o seguinte código:
lista telefônica ::[(Sequência, Sequência)]
Ao tentar compilar o código mencionado acima, estou recebendo o seguinte erro:
*Main>: Carregar "/home/optimight/phonebook.hs" [1 de 1] compilando main (/home/optimight/phonebook.hs, interpretado)
/home/optimight/phoneBook.hs:1:1:A assinatura do tipo para `agenda telefônica 'não possui uma ligação que a acompanhe falhou, os módulos carregados:nenhum.
Pergunta adicionada após a resposta de Brano e comentário subsequente a esta resposta:Como fornecemos implementação para a assinatura de tipo mencionada acima?
Se eu adicionar isso:
digite agenda telefônica = [(String, String)]
Estou recebendo o seguinte erro:
Prelude>: Carregar "/home/optimight/phonebook.hs" [1 de 1] compilando main (/home/optimight/phonebook.hs, interpretado)
/home/optimight/phoneBook.hs:2:6:Cabeçalho malformado de tipo ou declaração de classe:Falha na lista telefônica, os módulos carregados:nenhum
Solução
Você precisa fornecer uma implementação para agenda.
phoneBook :: [(String, String)]
é apenas a assinatura.
Outras dicas
Se você deseja declarar um tipo, ele deve ter letras maiúsculas iniciais, ou seja, type PhoneBook = [(String, String)]
.
Se você deseja declarar uma função, você precisa fornecer apenas sua definição (a ligação) ou sua definição e sua assinatura de tipo.O esforço mínimo para compilar seu código é:
phoneBook :: [(String, String)]
phoneBook = undefined
Então você pode substituir undefined
com qualquer valor do tipo [(String, String)]
por exemplo. [("Person","Number")]
.