haskell 中是否有包含字符串和列表的类型?
Is there a type that includes strings and lists in haskell?
现在我正在尝试创建一个基本函数,用于删除句子中的所有空格或逗号。
stringToIntList :: [Char] -> [Char]
stringToIntList inpt = [ a | a <- inpt, a `elem` [" ",","]]
我遇到的问题是,我尝试过的每一种类型都不起作用,如果我输入 [Char] 它会在逗号处出错,如果我输入 [string] 它会在空格处出错,如果我把字符串放在它只是不识别 a 并说这是一个错误。所以我想知道是否有某种类型可以同时用作 [Char] 和 [string]。
使用当前类型,定义需要
stringToIntList inpt = [ a | a <- inpt, a `elem` [' ',',']]
(单引号,因为这些是 Char
文字,而不是 String
文字!),
或者
stringToIntList inpt = [ a | a <- inpt, a `elem` " ,"]
(使用字符串只是字符列表的事实),
或简单地
stringToIntList = filter (`elem` " ,")
请注意,这不会删除 空格和逗号,相反,这些是它保留 的唯一字符。要删除它们,您需要反转谓词:
stringToIntList = filter $ not . (`elem` " ,")
如Iceland_jack评论,这个组合其实有一个标准函数:
stringToIntList = filter (`notElem` " ,")
如果你真的想要 a `elem` [" ",","]
那么你的函数类型需要是
stringToIntList :: [String] -> [String]
或等同于 [[Char]] -> [[Char]]
.
现在我正在尝试创建一个基本函数,用于删除句子中的所有空格或逗号。
stringToIntList :: [Char] -> [Char]
stringToIntList inpt = [ a | a <- inpt, a `elem` [" ",","]]
我遇到的问题是,我尝试过的每一种类型都不起作用,如果我输入 [Char] 它会在逗号处出错,如果我输入 [string] 它会在空格处出错,如果我把字符串放在它只是不识别 a 并说这是一个错误。所以我想知道是否有某种类型可以同时用作 [Char] 和 [string]。
使用当前类型,定义需要
stringToIntList inpt = [ a | a <- inpt, a `elem` [' ',',']]
(单引号,因为这些是 Char
文字,而不是 String
文字!),
或者
stringToIntList inpt = [ a | a <- inpt, a `elem` " ,"]
(使用字符串只是字符列表的事实),
或简单地
stringToIntList = filter (`elem` " ,")
请注意,这不会删除 空格和逗号,相反,这些是它保留 的唯一字符。要删除它们,您需要反转谓词:
stringToIntList = filter $ not . (`elem` " ,")
如Iceland_jack评论,这个组合其实有一个标准函数:
stringToIntList = filter (`notElem` " ,")
如果你真的想要 a `elem` [" ",","]
那么你的函数类型需要是
stringToIntList :: [String] -> [String]
或等同于 [[Char]] -> [[Char]]
.