Haskell - 如何删除尾随空格

时间:2015-02-20 02:04:43

标签: haskell

我想将[1,2,3]转换为“1 2 3”。此刻我得到“1 2 3”。 我使用

导入条带功能
import Data.Text (strip)

我的代码如下:

ar2str ar = (concatMap (\x -> (show x)++" " ) ar)

如何修改ar2str以使其适用于strip?

找到它

http://rosettacode.org/wiki/Strip_whitespace_from_a_string/Top_and_tail#Haskell

Rosetta Code to the rescue: - )

2 个答案:

答案 0 :(得分:5)

您可能希望使用Data.Text.unwords而不是所有这些。或者,如果您使用的是String而不是TextData.List.unwords

答案 1 :(得分:0)

如果处理给定的输入字符串,则剥离尾随空间是有意义的。如果一个人产生字符串,最好不要在第一个地方附加空格。特别是考虑到Haskell列表的性质,从末尾删除元素等于重建列表。

这是达到预期效果的一种方法:

ar2str :: Show a => String -> [a] -> String
ar2str _ [x] = show x
ar2str sep (x:x':xs) = show x ++ sep ++ ar2str sep (x':xs)