我是哈斯克尔的新手。
我有这样的代码段
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'
答案 0 :(得分:5)
问题是您的最后一行main = do
是语法错误;如果您的文件有语法错误,那么其中的任何函数都不会加载。如果您取出main的定义并尝试加载它,它应该可以正常工作。
在一个不相关的注释中,通常Haskell类型签名的写入间距为lucky :: Int -> String
。
答案 1 :(得分:4)
您不需要module Main where
或main = do
行。
您只需将文件扩展名为“.hs”,然后输入:load
和文件名