我编写了一个 Haskell 函数,它计算给定列表中每个数字的阶乘并将其打印到屏幕上。
factPrint list =
if null list
then putStrLn ""
else do putStrLn ((show.fact.head) list)
factPrint (tail list)
该功能有效,但我发现第三行有点混乱。为什么编译器(GHC)没有报告错误,因为“putStrLn”(准?)函数之前没有“do”?如果我从第 4 行省略“do”,则会按预期弹出错误。
我对 Haskell 及其方式很陌生,所以如果我说的过于愚蠢的话,请原谅我。