gpt4 book ai didi

haskell - 遍历haskell中的列表

转载 作者:行者123 更新时间:2023-12-04 13:03:45 25 4
gpt4 key购买 nike

我有一个字符列表 ::[[Char]] .
我需要遍历字符串列表以及每个字符串中的每个字符。

说,我的列表存在于这个变量中。
let xs
请提出一种简单的迭代方法。

最佳答案

如果要应用函数f像这样的列表的每个元素:

[a, b, c, d] → [f a, f b, f c, f d]

然后 map f xs成功了。 map将元素上的函数转换为列表上的函数。所以,我们可以嵌套它来操作列表列表: if f变换 a转入 b年代, map (map f)变换 [[a]]转入 [[b]] s。

如果您想对列表的每个元素执行一些 IO 操作(这更像是传统迭代),那么您可能正在寻找 forM_ :1
forM_ :: [a] -> (a -> IO b) -> IO ()

你给它一个函数,它会按顺序调用列表中的每个元素。例如, forM_ xs putStrLn是一个 IO 操作,将打印出 xs 中的每个字符串在自己的线上。这是一个更复杂地使用 forM_ 的示例。 :
main = do
...
forM_ xs $ \s -> do
putStrLn "Here's a string:"
forM_ s print
putStrLn "Now it's done."

如果 xs包含 ["hello", "world"] ,那么这将打印出:
Here's a string:
'h'
'e'
'l'
'l'
'o'
Now it's done.
Here's a string:
'w'
'o'
'r'
'l'
'd'
Now it's done.

1 forM_实际上有一个更通用的类型,但我展示的更简单的版本在这里更相关。

关于haskell - 遍历haskell中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com