我有这个疑问,找不到我的问题的答案。
不想编译的haskell代码:
type Prim = (String,String)
primeiros :: [Prim] -> [String]
primeiros [] = []
primeiros (a:xs) = fst a: primeiros xs
nosPrimeiros :: String -> [Prim] -> Bool
nosPrimeiros x [] = False
nosPrimeiros x ((a,b):xs) = if (x == primeiros (a,b) ) then True
else nosPrimeiros x xs
基本上第一个函数的作用是
primeiros [("one","guy"),("yes","man"),("works","not")]
> ["one","yes","works"]
第二个函数,检查字符串“one”是否嵌入每个元组的第一个位置,如果它至少在一个元组内,则为true,如果“one”不在至少一个元素的第一个位置,假的。
nosPrimeiros“one”[(“one”,“guy”),(“yes”,“man”),(“works”,“not”)]
是的
什么失败了?这是Haskell的基本功能,不能做到这一点让我疯狂......
非常感谢你的帮助。
答案 0 :(得分:1)
if (x == primeiros (a, b) )
应为if (x == a)
。