haskell:使用高阶函数解析错误

时间:2013-11-02 04:07:07

标签: haskell parse-error

我正在尝试创建一个插入排序方法,允许我根据项目的功能进行插入排序,例如,应用于1的函数可能大于应用于2的函数,反之亦然,具体取决于函数。

到目前为止,如果我可以将一个元素插入到列表的一部分中,我就可以解决这个问题。

insertBy :: Ord b => (a -> b) -> a -> [a] -> [a] 
insertBy f a [] = [a]
insertBy f a (x:xs) = if ( (f a)< (f x )) then a:x:xs else insertBy f a xs

但是,我在第二行遇到了解析错误。对不起,如果它真的很明显,但我看不到它。

一旦我有了这个部分,我将调用一个插入排序函数,使用它来对列表进行排序,但首先我需要帮助:(

编辑:确切错误“模式插入中的解析错误”

1 个答案:

答案 0 :(得分:1)

我认为你希望最后的表达是

x : insertBy f a xs

否则,在这种情况下,您将丢弃列表的第一个元素。