do{…}中的Haskell Last generator必须是表达式错误类型的绑定错误
我在Haskell做一个小系统,我收到两个错误 “do{…}中的最后一个生成器必须是表达式”“并且 “显式类型绑定中的类型错误” 术语:(fname、lname、cnic) 类型:(a、b、c) 不匹配:数据库“ 我是哈斯凯尔的新手,所以请帮帮我do{…}中的Haskell Last generator必须是表达式错误类型的绑定错误,haskell,Haskell,我在Haskell做一个小系统,我收到两个错误 “do{…}中的最后一个生成器必须是表达式”“并且 “显式类型绑定中的类型错误” 术语:(fname、lname、cnic) 类型:(a、b、c) 不匹配:数据库“ 我是哈斯凯尔的新手,所以请帮帮我 -------Data types------- type FirstName = String type LastName = String type CustomerNIC = String type Database = ( FirstName
-------Data types-------
type FirstName = String
type LastName = String
type CustomerNIC = String
type Database = ( FirstName , LastName , CustomerNIC )
--type Details = [Database]
------Data base---------
exampleBase :: [Database]
exampleBase = [ ( "Kevin" , "Desilva" , "8929323V" ),( "Nimal" , "Perera" , "89120323V" ) ]
-------Main Menu-----------------------------
getInt :: IO Int
getInt = do line <- getline
return (read line :: Int)
selectsearch ::IO()
selectsearch = do
putStr"\n\n\t 1.Search by NIC:"
putStr"\n\n\t 2.Search by First Name:"
putStr"\n\n\t Your Chocie:"
input<-getInt
subsearch input
subsearch :: Int->IO()
subsearch x = do
if(x=1) then do
putStr"\n\t Enter NIC:"
cnic <- getLine
subsearch
else if (x=2) then do
putStr"\n\t Enter First Name:"
cnic <- getLine
subsearch
else if (x=3) then putStr "\n ERROR"
selectsearch
else MainMenu
------- Search ------------
getfName :: Database -> FirstName
getfName ( fname , lname , cnic ) = fname
searchByFirstName :: Database -> FirstName -> Database
searchByFirstName (a:ax) fname
| fname == getfName a = a
| length ax == 0 && getfName a/= fname = ("No Data","",0)
| otherwise = searchByFirstName ax fname
----数据类型-------
键入FirstName=String
键入LastName=String
类型CustomerNIC=String
类型数据库=(FirstName、LastName、CustomerNIC)
--类型详细信息=[数据库]
------数据库---------
示例库::[数据库]
exampleBase=[(“Kevin”、“Desilva”、“8929323V”),(“Nimal”、“Perera”、“89120323V”)]
-------主菜单-----------------------------
getInt::IO Int
getInt=do行数据库
searchByFirstName(a:ax)fname
|fname==getfName a=a
|长度ax==0&&getfName a/=fname=(“无数据”,“0”)
|否则=searchByFirstName ax fname
有几点:
- 有一些奇怪的事情贯穿始终。确保使用的是空格,而不是制表符
- 在
,您通常会有子搜索中
cnic几点:
- 有一些奇怪的事情贯穿始终。确保使用的是空格,而不是制表符
- 在
中,您经常会看到子搜索
cnic总是告诉我们错误消息指的是哪几行。这些是哪几行?此网站上的代码列表不会自动编号。通常,最好在代码示例中添加注释,以指示错误所在的位置。请始终告诉我们错误消息所指的行。这些行是什么?此网站上的代码列表不会自动编号。通常最好在代码示例中添加注释,以指示错误的位置。Thanx对于您的注释…它在某种程度上帮助了我,而不是您的注释…它在某种程度上帮助了我