在Haskell中删除换行符

qre*_*est 6 string haskell list

在Haskell中从字符串中去除换行符的惯用方法是什么(或者有没有)?或者我必须通过查找尾随的换行符/空格然后删除它们来制作我自己的?

编辑:我正在寻找Python的rstrip所做的,但不需要可选的"chars"参数:

string.rstrip(s [,chars])

返回删除了尾随字符的字符串副本.如果省略chars或None,则删除空格字符.如果给定而不是None,则字符必须是字符串; 字符串中的字符将从调用此方法的字符串末尾删除.

Tra*_*own 10

这是一个简单的实现(改编自维基百科):

import Data.Char (isSpace)
rstrip = reverse . dropWhile isSpace . reverse
Run Code Online (Sandbox Code Playgroud)

还有一个rstrip已定义的Data.String.Utils.

(顺便说一句,Hayoo!对于这类问题来说是一个很好的资源:搜索rstrip直接带你去Data.String.Utils.)


Sim*_*ael 5

我前几天用过这个:

Prelude> let trimnl = reverse . dropWhile (=='\n') . reverse
Prelude> trimnl ""
""
Prelude> trimnl "\n"
""
Prelude> trimnl "a\n"
"a"
Prelude> trimnl "a\n\n"
"a"
Prelude> trimnl "a\nb\n"
"a\nb"
Run Code Online (Sandbox Code Playgroud)