現在我正在嘗試制作一個基本功能,從句子中洗掉任何空格或逗號。
stringToIntList :: [Char] -> [Char]
stringToIntList inpt = [ a | a <- inpt, a `elem` [" ",","]]
我遇到的問題是我嘗試過的每種型別都不起作用,如果我把 [Char] 放在逗號上,如果我把 [string] 放在空格上,如果我把字串放在里面,它只是不識別 a 并說這是一個錯誤。所以我想知道是否有某種型別可以同時用作 [Char] 和 [string]。
uj5u.com熱心網友回復:
對于當前型別,定義需要是
stringToIntList inpt = [ a | a <- inpt, a `elem` [' ',',']]
(單引號,因為這些是Char文字,而不是文字String!),
或者
stringToIntList inpt = [ a | a <- inpt, a `elem` " ,"]
(使用字串只是一個字串列的事實),
或者只是
stringToIntList = filter (`elem` " ,")
請注意,這不會洗掉空格和逗號,相反,它們是它保留的唯一字符。要洗掉它們,您需要反轉謂詞:
stringToIntList = filter $ not . (`elem` " ,")
如果你真的想要,a `elem` [" ",","]那么你的函式型別需要是
stringToIntList :: [String] -> [String]
或等效地[[Char]] -> [[Char]]。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/400946.html
上一篇:這個cmd'source'對kubectl有什么作用?
下一篇:將“派生通過”與型別系列一起使用
