Haskell Module: hidden Namen und GHCI
-
10-10-2019 - |
Frage
Ich versuche nur eine Teilmenge von Namen aus einem Haskell Modul zu exportieren, aber GHCi glücklich läßt mich zugreifen, auch die versteckten Namen.
module Hiding (shown, calc) where
calc = shown * hidden
shown :: Int
shown = 3
hidden :: Int
hidden = 2
Aber wenn dies in GHCI versuche ich:
Prelude> :l Hiding.hs
[1 of 1] Compiling Hiding ( Hiding.hs, interpreted )
Ok, modules loaded: Hiding.
*Hiding> hidden
2
Was mache ich falsch?
(Edit: für das, was es wert ist, ich bin mit GHCI 6.12.3 auf Arch Linux)
Lösung
Es sieht aus wie GHCi Ihr Modul wird geladen, damit Sie es untersuchen, das heißt Sie im Rahmen des Moduls setzen. Zwei Hinweise zu diesem sind die Aufforderung *Hiding>
und die Tatsache, dass Sie die versteckte Funktion abgerufen.
Edit:
Ende gibt es: http: // www. haskell.org/ghc/docs/latest/html/users_guide/interactive-evaluation.html#id3045728
Andere Tipps
Es scheint mir, wie du das Richtige getan zu haben. Wenn Sie das Modul von einem anderen Modul Referenz versuchen, werde ich wette hidden
an der Arbeit verweigert. Könnte sein, dass GHCI allwissend ist:)