2017-05-30 6 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

コード自体、それは大丈夫だと動作しますが、あなたがしようとしたように見えますHaskellでどのように関数を使うべきかを正確に評価するのではなく、Pythonの方法で関数を評価することです。ディレクトリ内ghciを実行してから(コマンド:l <filename>.hsを使用して)その中にファイルをロードすることで、REPLを使用して

  1. :あなたはここでオプションする必要があります。一度そこに入ると、ファイル内(typeOfInt 27)や他の関数(map typeOfInt [1, 2, 3, 4, 5])のように、関数を対話的に呼び出すことができます。

  2. メインメソッドの作成とファイルのコンパイル。 Haskellのmainメソッドはmain :: IO()メソッドでなければならず、コンパイルされたファイルを実行すると実行されます。ご例えば

、あなたが探しているように見える結果を得るためにputStrLnを使用することができます:あなたが見ることができるように

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

を、この場合にはそれが使用することを間違いなくより有用ですghciとコンパイルする代わりに関数で遊ぶ。

+0

ありがとう、非常に役立ちます! – Will

関連する問題