如何使用foldl'将列表转换为带分隔符“|”的字符串?

ltos :: String -> [String] -> String
ltos  []    = ""
ltos  (m:n) = foldl' f acc xs
   where
     f a b          =
     acc            =
     xs             =

例如,
ltos ["a", "b", "c"]

将输出
"a|b|c"

最佳答案

这是模式匹配和HOF的可爱组合。

ltos :: [String] -> String
ltos []    = ""
ltos (m:n) = foldl' (\a b -> a ++ "|" ++ b) m n

您可以使用列表的第一个元素作为起始字符串,然后将其折叠在其余元素上(在每个元素之间添加|)。

(我假设您将签名错误地键入了ltos)。

关于haskell - Haskell使用分隔符 “|”将字符串列表转换为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42360270/

10-15 00:58