我blabla
在Haskell中有一个函数,它接受一个Int并返回一个字符串:
blabla :: Int -> [Char]
Run Code Online (Sandbox Code Playgroud)
我想在for循环中重复运行该方法,如下所示:
for i := 1 to 25 do begin
write(i);
write(": ");
writeln(blabla(i));
end;
Run Code Online (Sandbox Code Playgroud)
haskell有for循环功能吗?
Aad*_*hah 14
模块中有一个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)
Run Code Online (Sandbox Code Playgroud)
但是,我建议你远离这种命令式的代码.例如,相同的代码可以更简洁地编写为:
import Control.Monad (mapM_)
blabla :: Int -> String
blabla = show
main = mapM_ (\i -> putStrLn $ show i ++ ": " ++ blabla i) [1..25]
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
喝了一杯茶,我得到了最好的结果,我想:
blablaResults = map (\x -> show x ++ ":" ++ blabla x) [0..25]
main = putStrLn $ unlines blablaResults
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
450 次 |
最近记录: |