关于haskell,如何在文件中定义函数?

时间:2012-04-29 00:36:32

标签: haskell

我是哈斯克尔的新手。

我有这样的代码段

lucky:: Int->String
lucky 7 = "LUCKY NUMBER SEVEN!"
lucky x = "Sorry , youre out of luck pal!" 

我试图直接输入到终端,似乎不对。 但是如果我想把它放在文件中并加载这个文件,那么调用幸运函数。我该如何构建这个文件? 谢谢!

我试过了:

module Main where
lucky:: Int->String
lucky 7 = "LUCKY NUMBER SEVEN!"
lucky x = "Sorry , youre out of luck pal!" 


main = do 

但是当我试着在终端打电话给幸运时,我得到了这个:

factorial.hs:7:8: Empty 'do' construct
lucky 7

<interactive>:1:1: Not in scope: `lucky'

2 个答案:

答案 0 :(得分:5)

问题是您的最后一行main = do是语法错误;如果您的文件有语法错误,那么其中的任何函数都不会加载。如果您取出main的定义并尝试加载它,它应该可以正常工作。

在一个不相关的注释中,通常Haskell类型签名的写入间距为lucky :: Int -> String

答案 1 :(得分:4)

您不需要module Main wheremain = do行。

您只需将文件扩展名为“.hs”,然后输入:load和文件名

,即可将功能定义加载并用于ghci