【发布时间】:2021-10-24 14:58:55
【问题描述】:
我正在尝试编写一个循环遍历字符串列表的函数,如下所示:
[" | "," # "," * "," | "," # "]
我正在尝试查找并返回包含'|', '#', or '*' 的第一个元素,具体取决于用户的选择。
我想出了这个解决方案:
test :: Char -> [String] -> Maybe Char
test c (x:xs) = find (== c) $ concatMap (filter (/=' ')) (reverse xs)
我得到这个输出:
ghci> test '*' [" | "," # "," * "," | "," # "]
Just '*'
找到元素,但我希望它返回元素而不改变它(删除空格)。如何在不过滤空格的情况下做到这一点?
这是我想要的输出:
ghci> test '*' [" | "," # "," * "," | "," # "]
" * "
【问题讨论】:
-
你想要的输出值的类型是什么?
-
我希望输出是字符串类型
-
是的,我知道,这是一个指导性问题。 :)
标签: haskell find list-comprehension