自从我在Haskell中编写代码以来,这是一段漫长的时间,所以虽然我对它有很多了解(从以前的经验),但它正在慢慢回归。我不确定为什么以下代码段不想运行。你能指点一下吗。
convChar::Char->Int
convChar chr
|chr == 'A' =0
|otherwise =28
main = do
convChar 'A'
答案 0 :(得分:3)
no
----------------
1
4
2
5
3
6
函数是程序的入口点,必须属于main
类型,但您要根据函数IO ()
来定义它类型。因此,您应该将Int
转换为Int
,这就是您需要类型为IO ()
的函数的原因。它可以将给定的数字打印到 stdout ,或者只是让程序在给定的持续时间内休眠。您可以使用Hoogle找到这些函数。
请注意,Int -> IO()
函数具有print
类型,因此,最好按名称搜索此函数,而不是按Show a => a -> IO ()
类型搜索。
因此,如果要打印函数的结果,则应按以下方式重写Int -> IO ()
函数:
main
请注意:如果您不熟悉main = print $ convChar 'A'
函数,可以使用括号来定义执行顺序
$
但使用main = print (convChar 'A')
会让您的代码更清晰