這是我在 ghci REPL(堆疊 ghci 8.10.7)中嘗試過的
λ> :{
| import Data.List
| import Data.Ratio
| :}
error: expecting a single import declaration
為什么我不能一次執行多個匯入?順便說一句,可以通過這種方式輸入完整的模塊定義,即,
λ> :{
| module STAL where
| import Data.List
| import Data.Ratio
| import Data.Decimal
| :}
我的動機是我將 Emacs org-mode 的 babel 用于 Haskell,當它被:{ :}.
uj5u.com熱心網友回復:
目前不支持這種多重匯入。但是,有一張封閉的票要求相同的https://gitlab.haskell.org/ghc/ghc/-/issues/20473,以及實作您所要求的合并補丁:https://gitlab.haskell .org/ghc/ghc/-/commit/7850142c09090a2eef1e1b0281acd641e843356a
我使用 GHC 9.2.1 進行了測驗,它的回應方式與您報告的相同,因此顯然該補丁沒有發布到該版本中。但我想下一個版本將支持像這樣的多個匯入。
uj5u.com熱心網友回復:
我剛剛檢查過,結果(至少在 GHC 9.0.1 上)您可以在多行模式下使用 ghci 的:module命令(:m簡稱)。
Prelude
λ :{
| :m Data.List Data.Ratio
| :}
Prelude Data.List Data.Ratio
這也允許:m ...添加一些模塊,或:m - ...洗掉一些模塊。如果您談論的是您自己的模塊(可用的源代碼),您可以使用在任何模塊名稱前面放一個星號來將其內部內容引入范圍。
但是,您不能進行更高級的匯入(限定、隱藏或僅匯入某些內容)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387002.html
