调用这个简单的haskell测试函数有什么问题

时间:2015-05-17 06:33:31

标签: haskell

自从我在Haskell中编写代码以来,这是一段漫长的时间,所以虽然我对它有很多了解(从以前的经验),但它正在慢慢回归。我不确定为什么以下代码段不想运行。你能指点一下吗。

convChar::Char->Int
convChar chr
 |chr == 'A'    =0
 |otherwise     =28

main = do
convChar 'A'

1 个答案:

答案 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') 会让您的代码更清晰