我希望以下GetArgs.hs
打印出传递给它的参数。
import System.Environment
main = do
args <- getArgs
print args
但是,在ghci
中加载后,我收到以下错误:
ghci> main 3 4 3
<interactive>:39:1:
Couldn't match expected type `a0 -> a1 -> a2 -> t0'
with actual type `IO ()'
The function `main' is applied to three arguments,
but its type `IO ()' has none
In the expression: main 3 4 3
In an equation for `it': it = main 3 4 3
由于print
具有以下类型:
ghci的&GT; :t打印 print ::显示a =&gt; a - &gt; IO()
我希望print args
能够工作。
为什么不呢?
答案 0 :(得分:11)
print args
运行正常。什么行不通的是main 3 4 3
。 main
没有任何争论,但你试图用三个来称呼它。
如果要模拟使用ghci中的命令行参数调用程序,可以使用:main
命令(前面带冒号)。或者,您可以编译程序并使用给定参数从命令行实际运行它。
答案 1 :(得分:11)
在ghci中使用run命令
:run main 3 4 3