Haskell:计数函数产生错误的定义

时间:2014-04-11 16:01:20

标签: haskell

所以我定义了一个匹配'功能如下

    let match :: Eq a => a -> [a] -> [Int]; match x = map (fromEnum . (==x))

现在我试图定义一个新的' countN'计算匹配的函数。当我尝试

    let countN :: a -> [a] -> Int; countN x xs = ? $ match x xs

我收到表单错误:'解析输入错误'?''

1 个答案:

答案 0 :(得分:1)

您收到错误是因为编译器正在将?解析为运算符,并且它连续看到两个运算符,第二个运算符是$,这是非法语法。看起来你从那里有?的地方复制/粘贴了这个,你觉得那里有什么?

编辑:

详细说明,你会对像

这样的表达做些什么
myFunc x = + * ++ / x

对于人类和任何Haskell编译器,这个表达式毫无意义。所有这些运营商在那里意味着什么?它不能是组合,类型不会排列,而且没有足够的参数。这是编译器在看到? $ match x xs时遇到的问题。