Haskell переопределяет функцию слова с помощью рекурсии - PullRequest
0 голосов
/ 05 ноября 2019

Мне нужно переопределить функцию слова с помощью рекурсии. У меня есть 2 вспомогательные функции, но я не могу собрать окончательную функцию. Есть идеи?

takeWord :: String -> String
takeWord  ""      = ""
takeWord (' ':xs) = ""
takeWord (x  :xs) = x : takeWord xs

dropWord :: String -> String
dropWord  ""      = ""
dropWord (' ':xs) =  ' ' : xs
dropWord (x  :xs) =  dropWord xs

words' :: String -> [String]
words' "" = []
words' (' ':xs) = takeWord xs : words' xs
words' (x:xs) =  takeWord (x:xs) : words' (dropWord xs)

Результат для этого ввода " Correct answer is this" должен быть ["Correct","answer","is","this"]. Теперь я получаю этот вывод: ["","","Correct","Correct","","","answer","answer","","","is","is","","","this","this"]

1 Ответ

0 голосов
/ 05 ноября 2019

Получил рабочее решение от @chi

«Возможно, я бы попробовал вместо слова» ('': xs) = слова 'xs пропустить начальные пробелы и посмотреть, что произойдет. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...