2017-05-30 104 views
0

我想告诉用户,如果给定的数字是偶数或奇数,但它似乎doen't工作...haskell函数不工作,谁能告诉我为什么?

typeOfInt :: Int -> String 

typeOfInt integerValue 
    |integerValue `mod` 2 == 0 = "even number" 
    |otherwise = "odd number" 

typeOfInt 27 
+5

它不起作用? – gobrewers14

+3

猜测:测试'typeOfInt 27'不能写在.hs文件中,而是要在GHCi内部进行评估的表达式。 – chi

+0

谢谢!现在我明白了。 – Will

回答

7

代码本身它的确定和作品,但它看起来像你试图以Pythonic方式评估函数,而不是如何使用Haskell中的函数。您可以在这里选择:

  1. 使用REPL,通过在目录中运行ghci,然后将文件加载里面(使用命令:l <filename>.hs)。一旦进入该处,您就可以交互式地使用该功能,就像您在文件(typeOfInt 27)或其他功能(map typeOfInt [1, 2, 3, 4, 5])中所做的那样调用它。

  2. 创建主要方法并编译文件。 Haskell中的主要方法必须是main :: IO()方法,这就是运行编译文件后将执行的内容。

对于你的榜样,您可以使用putStrLn让你似乎结果,以寻找:

main :: IO() 
main = putStrLn $ typeOfInt 27 

正如你所看到的,在这种情况下,它是使用可以说是更有用ghci并发挥功能,而不是编译。

+0

非常感谢,非常有帮助! – Will

相关问题