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)

War es hilfreich?

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:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top