首先检查元组以查看是否与参数匹配

时间:2013-11-24 23:33:10

标签: haskell

我有这个疑问,找不到我的问题的答案。

不想编译的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的基本功能,不能做到这一点让我疯狂......

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

if (x == primeiros (a, b) )应为if (x == a)