2017-05-19 27 views
0

我似乎無法直接執行ghci當導入一個模塊,但是我能夠執行ghci xmonad.hs時加載模塊。如何導入GHCi路徑中的模塊?

目錄樹:

. 
├── ghcid.sh 
├── lib 
│   ├── FocusWindow.hs 
│   ├── MiddleColumn.hs 
│   ├── Readme.md 
│   └── TAGS 
├── Readme.md 
├── TAGS 
├── xmonad2.hs 
├── xmonad.errors 
├── xmonad.hs 
├── xmonad.state 
├── xmonad.state.backup 
└── xmonad-x86_64-linux 

.ghci

:set -Wall 
:set -i:lib 

ghci的提示:

Prelude> :show paths 
current working directory: 
    /home/chris/.xmonad 
module import search paths: 
    . 
    lib 
Display all 2040 possibilities? (y or n) 
Prelude> import FocusWindow 

<no location info>: error: 
    Could not find module ‘FocusWindow’ 
    It is not a module in the current program, or in any known package. 

ghci的xmonad.hs提示

GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help 
Loaded GHCi configuration from /home/chris/.xmonad/.ghci 
[1 of 3] Compiling FocusWindow  (lib/FocusWindow.hs, interpreted) 
[2 of 3] Compiling MiddleColumn  (lib/MiddleColumn.hs, interpreted) 
[3 of 3] Compiling Main    (xmonad.hs, interpreted) 
Ok, modules loaded: MiddleColumn, FocusWindow, Main. 
*Main> import FocusWindow 
*Main FocusWindow> :show paths 
current working directory: 
    /home/chris/.xmonad 
module import search paths: 
    . 
    lib 
+0

你試過'? –

+0

工作,謝謝。我仍然想知道爲什麼。 –

回答

3

只能導入模塊從一些已知的包,或者已被加載。當您運行ghci xmonad.hs,它加載其所需xmonad.hs和任何模塊。當您運行ghci時,默認情況下它不會加載任何內容。

您可以通過運行:load FocusWindow,或:l FocusWindow簡稱加載單獨的模塊。這將自動也「進口」,在一個特殊的方式,模塊(具體是:讓所有可用的名字,甚至未匯出的),你也可以做到通過FocusWindow使用的模塊的正常進口。

這很可能是ghci中的import支持,試圖在抱怨之前加載未知模塊一個不錯的功能。我懷疑添加該功能的補丁會被接受。做進口前負荷xmonad`:

相關問題