haskell函数不工作,谁能告诉我为什么?
问题描述:
我想告诉用户,如果给定的数字是偶数或奇数,但它似乎doen't工作...haskell函数不工作,谁能告诉我为什么?
typeOfInt :: Int -> String
typeOfInt integerValue
|integerValue `mod` 2 == 0 = "even number"
|otherwise = "odd number"
typeOfInt 27
答
代码本身它的确定和作品,但它看起来像你试图以Pythonic方式评估函数,而不是如何使用Haskell中的函数。您可以在这里选择:
使用REPL,通过在目录中运行
ghci
,然后将文件加载里面(使用命令:l <filename>.hs
)。一旦进入该处,您就可以交互式地使用该功能,就像您在文件(typeOfInt 27
)或其他功能(map typeOfInt [1, 2, 3, 4, 5]
)中所做的那样调用它。创建主要方法并编译文件。 Haskell中的主要方法必须是
main :: IO()
方法,这就是运行编译文件后将执行的内容。
对于你的榜样,您可以使用putStrLn
让你似乎结果,以寻找:
main :: IO()
main = putStrLn $ typeOfInt 27
正如你所看到的,在这种情况下,它是使用可以说是更有用ghci
并发挥功能,而不是编译。
+0
非常感谢,非常有帮助! – Will
它不起作用? – gobrewers14
猜测:测试'typeOfInt 27'不能写在.hs文件中,而是要在GHCi内部进行评估的表达式。 – chi
谢谢!现在我明白了。 – Will