0
그래서 단어 목록을 받아 새 목록에있는 anagrams를 반환하는 함수를 만들려고합니다. 이것은 내가 지금까지 가지고있는 것이다 :하스켈에서 anagrams를 확인하기위한 함수 만들기
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))
나는 나의 find 기능에 문제가 있음을 확신한다. 오, 나는 하스켈에 처음 왔어.
함수에 명시 적 형식 시그니처를 추가하십시오. GHC의 오류 메시지는 (잘하면) 코드 문제를 찾는 데 도움이됩니다. 또한, 하스켈 (Haskell)에서는 두 개의 인자 ('f :: (a, b) -> c')를 갖는 함수를 카레 함수'f :: a-> b-> c'로 쓸 수있다. – cdk