여기에 튜플 목록을 살펴보고 튜플의 두 번째 값을 찾아내는 함수가 있습니다. 첫 번째 값. 주어진 첫 번째 문자열을 포함하는 어떤 튜플이없는 경우Haskell : 첫 번째 값을 기준으로 목록에서 두 번째 값을 찾으십시오.
가lookup :: String -> [(String,String)] -> String
lookup _ _ [] = "Not found"
lookup x y zs = if (notFound x zs)
then "Not found"
else (head [b | (a,b) <- zs, (a==x)])
NOTFOUND 기능은 단지 BOOL로 true를 돌려 : 여기에 지금까지 기능입니다. 문제는 내가 포옹에 이러한 유형의 오류 얻을 수 있습니다 :
ERROR "find.hs" (line 22): Type error in explicitly typed binding
*** Term : lookup
*** Type : String -> [(String,String)] -> [a] -> String
*** Does not match : String -> [(String,String)] -> String
나는 그것이 생성 된 목록에서 문자열에 대한 다른 유형을 갖는 더미 "찾을 수 없음"값을 함께 할 수있는 뭔가 생각하고 있어요,하지만 난 확실하지 않다.