296*_*349 0 haskell functional-programming
我是Haskell的新手和功能编程..
我的目标是从用户那里获取一个字符串,并检查该字符串中是否有可用的词干.如果是这样我想删除词干并返回字符串.
Eg: if input is :"He is fishing and catching"
output is : "he is fish and catch"
Run Code Online (Sandbox Code Playgroud)
我可以用其他语言做到这一点.但我不知道如何在Haskell中做到这一点.做任何人都知道如何使用Haskell解决这个问题..
checkstemming :: [String] -> [String]
checkstemming [] = []
checkstemming xs = foldr (++) [] ( [ drop x |x <- xs, x="ing"])
Run Code Online (Sandbox Code Playgroud)
我试过,但我知道错了.任何人都可以帮我解决这个问题,请...
一次解决一个词,这使事情变得更容易:
removeStemming :: String -> String
removeStemming [] = []
removeStemming (x:"ing") = [x]
removeStemming (x:xs) = x : removeStemming xs
checkStemming :: [String] -> [String]
checkStemming = map removeStemming
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用isSuffixOffrom Data.List:
removeStemming :: String -> String
removeStemming xs
| "ing" `isSuffixOf` xs = take (length xs - 3) xs
| otherwise = xs
Run Code Online (Sandbox Code Playgroud)