我刚刚开始学习 Haskell,但现在缺少循环令人无限沮丧。我弄清楚了如何为函数编写循环。然而,我的问题是我想在迭代循环时输出一些结果。看来我必须使用调试来执行这个简单的任务。
所以现在我只想看一个如何在主结构中打印 10 次字符串的示例。
换句话说,我想这样做 10 次:
main = do
putStrLn "a string"
谢谢。我觉得这对我的任务很有启发。
您可以定义一个递归函数,打印“字符串”n 次(n 是函数的参数),如下所示:
printStringNTimes 0 = return ()
printStringNTimes n =
do
putStrLn "a string"
printStringNTimes (n-1)
main = printStringNTimes 10
一种更通用的方法是定义一个重复任何 IO 操作 n 次的函数:
repeatNTimes 0 _ = return ()
repeatNTimes n action =
do
action
repeatNTimes (n-1) action
main = repeatNTimes 10 (putStrLn "a string")
上述函数已经存在于Control.Monad
以...之名replicateM_
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)