我剛剛開始使用Haskell進行編程,並希望進行字符串轉換。 我有一個任意的字符串,例如 「abcd \ n爸爸」 我想刪除左側和右側的空白字符。我想消除多個空格以及逃生sequcences「\ n」 - >「」Haskell:修剪字符串並消除多個空格
所以上面的字符串應該是這樣 「ABCD爸爸」
我已經寫了修剪功能String和刪除空白字符(我刪除的字符,如果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是如何工作的。
乾杯
OP正試圖學習如何在Haskell中編寫模式匹配/遞歸函數,而不是如何使用已經存在的函數。 – itsbruce
我意識到並堅持這種方法,即理解如何簡單地(適當地)做這件事,然後分析源代碼中的底層細節,事實上,這種情況在這種情況下是相關的。 – user2939875
幫我一把,正在尋找答案。謝謝。 – cevaris