gpt4 book ai didi

haskell - 如何在 Haskell 中重复执行 IO 命令?

转载 作者:行者123 更新时间:2023-12-04 02:52:11 24 4
gpt4 key购买 nike

我有一个函数blabla在 Haskell 中,它接受一个 Int 并返回一个字符串:

blabla :: Int -> [Char]

我想在 for 循环中重复运行该方法,如下所示:
for i := 1 to 25 do begin
write(i);
write(": ");
writeln(blabla(i));
end;

haskell 有 for 循环功能吗?

最佳答案

有一个 forM_ Control.Monad 中的函数类似于命令式编程语言中的 for 循环的模块:

import Control.Monad (forM_)

blabla :: Int -> String
blabla = show

main = forM_ [1..25] $ \i -> do
putStr (show i)
putStr ": "
putStrLn (blabla i)

但是,我建议您远离这种命令式代码。例如,相同的代码可以更简洁地编写为:

import Control.Monad (mapM_)

blabla :: Int -> String
blabla = show

main = mapM_ (\i -> putStrLn $ show i ++ ": " ++ blabla i) [1..25]

希望有帮助。

关于haskell - 如何在 Haskell 中重复执行 IO 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29497076/

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