ハスケルから小さなシステムを実行していて、 という2つのエラーが発生しました。 "do {...}の最後のジェネレータは式 "と " 明示的 ターム結合型付けで型エラー:(FNAME、LNAME、CNIC) タイプ:(a、b、c)は、 が一致しません:データベース「Haskell do {...}の最後のジェネレータは式エラー型のバインディングエラーでなければなりません
plzはそれほどのhaskellするイム新しいを私を助けてください。
-------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
エラーメッセージが参照する行を必ず教えてください。 – dave4420
@ dave4420 20行目と13行目 – Zeus
これはどの行ですか?このウェブサイトのコードリストには自動的に番号が付けられません。通常、エラーがどこにあるかを示すためにコードサンプルにコメントを追加するのが最善です。 – dave4420