1. ホーム
  2. haskell

[解決済み] エラー haskell: スコープ内にありません。どういう意味ですか?

2022-01-29 18:15:39

質問内容

今日から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

また、ワークフローを改善するために、コードをファイルに保存して、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>