运行 Powershell 中的这个 Haskell 代码什么都不做

Running this Haskell code in Powershell does nothing

我正在为一个学校项目学习 Haskell,并且正在学习 Hudak 的 Haskell 表达学院 。我写了下面的测试代码:

main :: IO ()
main = return ()

p :: Float
p = 3.14159

totalArea :: Int -> Int -> Int -> Float
totalArea r1 r2 r3 =
    let 
        circleArea r = p*r^2 
    in
        circleArea (fromIntegral r1) + circleArea (fromIntegral r2) + circleArea (fromIntegral r3)

这编译得很好,但我实际上如何 运行 它?我输入 Powershell ./test.exe totalArea 5 6 7,但没有任何反应。我知道这是一个完全菜鸟的问题,所以我提前道歉并感谢您的帮助!

main = return (),这意味着程序没有做任何事情:你只是定义了一个常量和函数,但你没有对它们做任何事情。

您可以实现 main 来打印 totalArea 5 6 7 的结果:

main :: IO ()
main = print <strong>(testArea 5 6 7)</strong>

或者例如解析程序参数:

import System.Environment(<strong>getArgs</strong>)

main :: IO ()
main = do
    (ra : rb : rc : _) <- <strong>getArgs</strong>
    print (testArea (read ra) (read rb) (read rc))

然后你可以调用程序:

./test.exe 5 6 7