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
?这很有效,谢谢。我还是想知道为什么。