1

我在 CLEAN 中遇到问题,如何使字符串中的所有字母都小写?我可以通过 char 数组来完成,但我也需要用字符串来完成。到目前为止,我有以下代码:

module Something

import StdEnv, StdLib

arrayLower:: [Char] -> [Char]
arrayLower[x:xs] = (map toLower [x:xs]) 


stringLower:: String -> String
stringLower_ = ""
stringLowers = toString (arrayLower s)

Start:: String     
Start = stringLower"SSSsss"
4

1 回答 1

4

你的第一个案例

stringLower _ = ""

表示stringLower应用于任何内容的是空字符串。
我很惊讶您没有收到关于多余的第二种情况的警告。

AString 一个数组(未装箱,所以它是 a {#Char}),并且您说您已经知道如何使用数组执行此操作,但是您是为( )arrayLower的列表定义的,而不是数组。Char[Char]

这使用数组理解对我有用:

stringLower :: String -> String
stringLower s = {toLower c \\ c <-: s} 
于 2014-10-05T16:49:57.960 回答