我目前正在haskell中创建一个函数,如:
allStrings :: [String] -> String
我想让函数做的是接受字符串列表,然后用空格字符
分割每个字符串so say input = ["Today", "Tomorrow"] output = "Today Tomorrow"
我遇到的一个问题是如何处理包含""
和char来表示新行的字符串,我不确定如何处理这些字符串,我知道字符串中的引号被包围,当我们在字符串中遇到引号时,我想做的是这样的:
input ["Sun"shine" ", "Rain"] becomes output -> "Sun""shine" Rain"
有人能告诉我怎么做吗?
感谢我知道在Haskell中用单个空格连接String
s的最佳方法是unwords
。具有以下签名:
λ> :t unwords
unwords :: [String] -> String
它完全符合你的需要。
关于如何显示包含"
的字符串(例如unwords
的输出,如果它包含"
将具有"
,这是打印问题。
如果您希望s在显示字符串时消失,请使用带有以下签名的
putStrLn
:
λ> :t putStrLn
putStrLn :: String -> IO ()
一样:
λ> putStrLn $ unwords ["Sun"shine" ", "Rain"]
Sun"shine" Rain