【发布时间】:2021-05-17 18:53:04
【问题描述】:
我创建了联系人类型,我正在尝试创建一个函数,该函数采用 4 个参数(名字、姓氏、电话和州)并创建一个联系人并将其添加到现有联系人列表中。
type LastName = String
type FirstName = String
type Phone = String
type Contact = (Person, State)
data Person = Person Phone Name deriving (Show, Read)
type Name = (FirstName, LastName)
data State = Good | Bad
addContact :: Phone -> FirstName -> LastName -> State -> [Contact] -> [Contact]
addContact c p n s [] = Contact (Person c (p,n) ,s) : []
addContact c p n xs = Contact (Person c (p,n) , s) : xs
我似乎无法在 LYAH 或 SOF 上找到解决方案,我完全按照本节所说的内容进行操作,尤其是关于形状的部分:http://learnyouahaskell.com/making-our-own-types-and-typeclasses#record-syntax 但我收到以下编译错误:
• Data constructor not in scope:
Contact :: (Person, [Char]) -> Contact
我尝试将类型的大写更改为小写,但仍然出现未定义变量错误编译。
这里有什么我遗漏的吗?
【问题讨论】:
-
您的第二种和第三种类型定义没有意义,并且不会编译。如果你输入了这个源代码,你会在到达函数定义之前得到一个错误。请编辑问题以包含实际失败的源代码。
标签: list haskell types construction