【发布时间】:2013-10-31 16:20:15
【问题描述】:
我刚刚开始使用 Haskell 进行编程,并且想做一个字符串转换。 我有一个任意字符串,例如 " abcd \n 爸爸 " 我想删除左侧和右侧的空白字符。我想消除多个空格以及转义序列“\n”->“”
所以上面的字符串看起来像这样 "abcd 爸爸"
我已经编写了一个修剪字符串并删除空白字符的函数(如果 isSpace 为真,我将删除该字符):
trim :: [Char] -> [Char]
trim x = dropWhileEnd isSpace (dropWhile isSpace x)
现在我的想法是对输入字符串进行模式匹配。但是如何将修剪功能直接应用于输入?所以起初我想修剪两端的字符串,然后应用模式匹配。所以我唯一要做的就是比较两个字符,如果两个都是空白字符,则删除一个
--How do I apply trim directly to the input
s :: [Char] -> [Char]
s [x] = [x]
s(x:xx) = ...
注意:效率并不重要。我想学习模式匹配的概念并了解 Haskell 的工作原理。
干杯
【问题讨论】: