Haskell 将列表大写-将列表的第一项大写时卡住

Haskell 将列表大写-将列表的第一项大写时卡住,haskell,Haskell,使用大写函数编写一个函数,给定一个单词列表,将它们大写,作为标题。标题的正确大写形式如下:第一个单词应该大写。如果任何其他单词的长度至少为四个字母,则应大写。例如 标题[“tHe”,“sOunD”,“ANd”,“tHe”,“tHe”,“FuRY”] ==[“声音”,“和”,“愤怒”] 我被困在名单的第一个字上 -- capitalise -- List capitalise :: String -> String capitalise (head:tail) = Char.toUpper

使用大写函数编写一个函数,给定一个单词列表,将它们大写,作为标题。标题的正确大写形式如下:第一个单词应该大写。如果任何其他单词的长度至少为四个字母,则应大写。例如 标题[“tHe”,“sOunD”,“ANd”,“tHe”,“tHe”,“FuRY”] ==[“声音”,“和”,“愤怒”]

我被困在名单的第一个字上

-- capitalise

-- List
capitalise :: String -> String
capitalise (head:tail) = Char.toUpper head : map Char.toLower tail
capitalise [] = []

-- title

lowercase :: String -> String
lowercase xs = [ toLower x | x <- xs ]

-- List 
title :: [String] -> [String]
title xs = [ if length x < 4 then lowercase x else capitalise x | x <- xs ]
——资本化
--名单
大写::字符串->字符串
大写(头:尾)=Char.toUpper头:map Char.toLower尾
大写[]=[]
--头衔
小写::字符串->字符串
小写的xs=[toLower x | x[String]

title xs=[如果长度x<4,则小写x,否则大写x | x您只需遵循在
大写
中所做的相同模式:对第一项进行特殊处理,然后在列表的其余部分映射一个无差别的函数

-- capitalise

-- List
capitalise :: String -> String
capitalise (head:tail) = Char.toUpper head : map Char.toLower tail
capitalise [] = []

-- title

lowercase :: String -> String
lowercase xs = [ toLower x | x <- xs ]

-- List 
title :: [String] -> [String]
title xs = [ if length x < 4 then lowercase x else capitalise x | x <- xs ]