0
所以我试图创建一个函数,它接受一个单词列表并返回新列表中的字母。这是我到目前为止:在Haskell中创建一个检查字符的函数
quicksort :: Ord a => [a] -> [a]
quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xs
sub(a,[]) = []
sub(a,b:c) = if a == b then c else b:(sub(a,c))
sublist([],a) = a
sublist(a:b,c) = sublist(b,sub(a,c))
anagram a b = quicksort (a) == quicksort (b)
find a,[] = nil
find (a, b:c) = if anagram a b then b:(find(a,c)) else find(a,c)
listana [] = nil
listana (a:c) = list:(listana(sublist(list,a:c)))
where list = a:(find(a,c))
我很确定有一个问题,我的查找功能。 哦,我是Haskell的新手,所以请放轻松点。
尝试添加显式类型签名到您的函数。 GHC的错误信息应该(希望)帮助你找到你的代码的问题。另外,在Haskell中,你可以用一个带有2个参数('f ::(a,b) - > c')的函数作为curried函数('f :: a - > b - > c') – cdk