我有以下代码
reconocerCliente :: Cliente -> Cliente -> Cliente
reconocerCliente cliente otroCliente
| verificarCliente cliente otroCliente = cliente {amigos = otroCliente : amigos}
| otherwise = id cliente
这是使用过的功能:
verificarCliente :: Cliente -> Cliente -> Bool
verificarCliente cliente otroCliente = (esElMismo cliente otroCliente) && not(any(== otroCliente) amigos)
esElMismo :: Cliente -> Cliente -> Bool
esElMismo (Uncliente nombre _ _ _) (Uncliente otroNombre _ _ _) = nombre /= otroNombre
每次编译时我都会得到“错误:输入错误:解析'|'”
正好在这一行:
| verificarCliente cliente otroCliente = cliente {amigos = otroCliente : amigos}
我不知道我的问题是否是缩进(使用空格而不是制表符)或我的警卫
答案 0 :(得分:0)
您粘贴的代码没有语法错误:当我将其粘贴到.hs文件中时,它的工作正常,并且Cliente
具有适当的定义。
您遇到的一个错误不会导致您收到错误消息:
cliente {amigos = otroCliente : amigos}
此处第二次出现amigos
的类型错误:请记住amigos
是您的记录定义的函数。它与cliente
没有隐式模式匹配。相反,你可以写一些类似的东西:
cliente {amigos = otroCliente : amigos cliente}