Haskell 如何导入GHCi路径中的模块?
在直接执行Haskell 如何导入GHCi路径中的模块?,haskell,ghci,Haskell,Ghci,在直接执行ghci时,我似乎无法导入模块,但是在执行ghci xmonad.hs时,我能够加载模块 目录树: . ├── ghcid.sh ├── lib │ ├── FocusWindow.hs │ ├── MiddleColumn.hs │ ├── Readme.md │ └── TAGS ├── Readme.md ├── TAGS ├── xmonad2.hs ├── xmonad.errors ├── xmonad.hs ├── xmonad.state ├── xmo
ghci
时,我似乎无法导入模块,但是在执行ghci xmonad.hs
时,我能够加载模块
目录树:
.
├── 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
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
:set -Wall
:set -i:lib
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
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
时,它将加载xmonad.hs
及其所需的任何模块。运行ghci
时,默认情况下它不会加载任何内容
您可以通过运行:load FocusWindow
,或简称:l FocusWindow
单独加载模块。这也将以一种特殊的方式自动“导入”该模块(特别是:使所有名称可用,甚至是未导出的名称),并且您还可以正常导入FocusWindow
使用的模块
对于ghci的
import
支持来说,在抱怨之前尝试加载未知模块可能是一个不错的功能。我怀疑添加该功能的修补程序会被接受。您只能导入来自某个已知软件包或已加载的模块。运行ghci xmonad.hs
时,它将加载xmonad.hs
及其所需的任何模块。运行ghci
时,默认情况下它不会加载任何内容
您可以通过运行:load FocusWindow
,或简称:l FocusWindow
单独加载模块。这也将以一种特殊的方式自动“导入”该模块(特别是:使所有名称可用,甚至是未导出的名称),并且您还可以正常导入FocusWindow
使用的模块
对于ghci的
import
支持来说,在抱怨之前尝试加载未知模块可能是一个不错的功能。我怀疑添加该功能的补丁会被接受。在导入之前,您是否尝试过:加载xmonad
?这很有效,谢谢。不过我还是想知道为什么。在导入之前,您是否尝试过:加载xmonad
?这很有效,谢谢。我还是想知道为什么。