8

初めてのモジュール体験として、Data.List を GHCi にインポートしました。(正確にimport Data.ListはGHCiで打ちました) GHCiなどで今までなかった機能が使えるようになったので、問題なく動いているようfoldl'です。

haha = foldl' (+) 0 [1..10]私はメモ帳++に書き、それを保存してロードすると、GHCiNot in scope: foldl'に直接入力すると問題なく動作するにもかかわらず、GHCiは言いfoldl' (+) 0 [1..10]ます。

それはなぜで、メモ帳で関数を定義するにはどうすればよいfoldl'ですか?

4

1 に答える 1

16

GHCi プロンプトでスコープ内にあるものは、GHCi からロードする可能性のあるファイル内のスコープ内のものと必ずしも同じではありません。GHCi には、現在のスコープの独自の概念があり、通常、ロードしたファイルのトップレベルと、明示的に追加した他のモジュールまたはインポートしたものすべてが含まれます。(最後にコンパイルされてから変更されていないファイルをロードすると、動作が異なりますが、それでも混乱します...)

Data.Listとにかく、コードファイル自体をインポートするだけです。たとえば、次のようになります。

module Main where

import Data.List

haha = foldl' (+) 0 [1..10]

それを行った後、ファイルをロードすると、Data.Listロードされたモジュールのトップレベルで表示されるため、GHCi プロンプトでも効果的にインポートされるはずです。

于 2013-05-03T16:43:01.320 に答える