main函数不会在haskell中使用任何参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了main函数不会在haskell中使用任何参数相关的知识,希望对你有一定的参考价值。

嗨,我想在haskell中定义一个main函数,类似于java中的main函数

main :: String -> IO()
main args = do
            putStrLn args

但是当我尝试运行程序时,这会给我一个错误。

答案

Haskell程序的入口点的类型为IO (),而不是String -> IO ()

要获取命令行参数,请使用System.EnvironmentgetArgs

使用do-notation:

import System.Environment (getArgs)

main :: IO ()
main = do
  args <- getArgs
  print args

(注意,使用print而不是putStrLn,因为args具有[String]的类型,而不是String。)

以上是关于main函数不会在haskell中使用任何参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Haskell 中编写游戏循环?

在 Haskell 中写或不写 `module Main where`

AWS lambda 类似于 Haskell 函数的执行

没有变量的Haskell

为啥我的 Haskell 函数参数必须是 Bool 类型?

函数返回与函数参数中的 Haskell 模式匹配