我不确定我的代码有什么问题,但是当我尝试运行它时,我得到了
Couldn't match type `Integer' with `Int'
我正在使用GHCi。我想创建一个基本程序,它将通过商店并给我所有客户名称,以便我可以搜索以找出他们租用的项目(库)。有没有更好的方法获得名字?
这是我的代码:
type Name = String
type Customer = (Name,Int)
type shop = [Customer]
shop = [cust1, cust2]
cust1 = ("Neil", 311)
cust2 = ("Fred", 0)
getName :: (String,Int) -> Name
getName (a,b) = a
答案 0 :(得分:4)
GHCi默认使用Integer
而不是Int
。您应该将元组的类型指定为cust1 = ("Neil", 311 :: Int)
或cust2 = ("Fred", 0) :: (String, Int)
。
更新后修改
如果您已经定义了Customer
,则应将其写为
cust1 = ("Neil", 311) :: Customer
cust2 = ("Fred", 0) :: Customer
getName :: Customer -> Name
getName (a, b) = a
您还可以通过将getName
定义为
getName :: Customer -> Name
getName = fst
使用ETA缩减和内置函数fst