【发布时间】:2020-02-10 21:32:02
【问题描述】:
我正在解决这个问题: 使用 map、filter 和 (.)(函数组合运算符), 定义一个检查字符串列表的函数,只保留长度为奇数的字符串, 将它们转换为大写字母,并将结果连接起来生成一个字符串。
我知道我可以通过列表理解来做到这一点,但我被明确指示使用过滤器。 现在,我的代码如下所示:
concatenateAndUpcaseOddLengthStrings :: [String] -> String
concatenateAndUpcaseOddLengthStrings [] = ""
concatenateAndUpcaseOddLengthStrings xs = filter (\x -> length x `mod` 2 == 1) xs
我收到此错误: 无法将类型“[Char]”与“Char”匹配 预期类型:字符串 实际类型:[[Char]]
我在添加其他组件之前正在测试过滤器功能,但我无法克服这个错误。 有什么想法吗?
【问题讨论】:
-
你忘了连接结果。
-
哇哦,呵呵。在增加更多复杂性之前,我通常会尝试确保我的代码的每个组件都正常工作,所以我一定已经忽略了这一点。谢谢!
标签: haskell