Как сделать строчную строчку в CLEAN
У меня есть проблема в CLEAN, как я могу сделать строчные все буквы в строке? Я могу сделать это через массив символов, но мне нужно сделать это и со строкой. Пока у меня есть код ниже:
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"
1 ответ
Решение
Ваш первый случай
stringLower _ = ""
Значит это stringLower
к чему-либо применяется пустая строка.
Я удивлен, что вы не получили предупреждение за лишний второй случай.
String
это массив (без коробки, так что это {#Char}
), и вы говорите, что уже знаете, как сделать это с массивами, но ваши arrayLower
определяется для списков Char
([Char]
), а не массивы.
Это, используя понимание массива, работает для меня:
stringLower :: String -> String
stringLower s = {toLower c \\ c <-: s}