今日はHaskellで始め、ghciで実行するすべての機能がこのメッセージを表示します。なぜこれが起こっているのか知りたいだけです。私はこれについて多くの質問があることを知っていますが、これは単純なケースであり、最初にこのエラーを理解する必要があります
function3 :: Int -> [Int]
function3 x = [a | a <- [1..x] mod a x == 0]
GHCiで関数タイプを入力するとエラーが発生しましたか?
$ ghci
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
Prelude> function3 :: Int -> [Int]
<interactive>:1:1: error:
Variable not in scope: function3 :: Int -> [Int]
Prelude>
その場合は、複数行の入力を使用する必要があります
Prelude> :{
Prelude| function3 :: Int -> [Int]
Prelude| function3 x = [a | a <- [1..x], mod a x == 0]
Prelude| :}
そして、,
の前のmod
または、ワークフローを改善するために、コードをファイルに保存し、 :load を使用してGHCiにロードできます。
$ cat tmp/functions.hs
function3 :: Int -> [Int]
function3 x = [a | a <- [1..x], mod a x == 0]
$ ghci
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
Prelude> :l tmp/functions.hs
[1 of 1] Compiling Main ( tmp/functions.hs, interpreted )
Ok, modules loaded: Main.
*Main> :t function3
function3 :: Int -> [Int]
*Main>