运行 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
我正在为一个学校项目学习 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