[英]Multiple import lines produces error in ghci
這是我在 ghci REPL (stack 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 ,它只適用於被包圍的多行代碼:{:}
。
目前不支持這種多重導入。 However, there's a closed ticket asking for the same https://gitlab.haskell.org/ghc/ghc/-/issues/20473 , and a merged patch that implements what you're asking for: https://gitlab.haskell .org/ghc/ghc/-/commit/7850142c09090a2eef1e1b0281acd641e843356a
我使用 GHC 9.2.1 進行了測試,它的響應方式與您報告的相同,因此顯然該補丁沒有發布到該版本。 但我想下一個版本將支持這樣的多重導入。
我剛剛檢查過,事實證明(至少在 GHC 9.0.1 上)您可以在多行模式下使用 ghci 的:module
命令(簡稱:m
)。
Prelude
λ :{
| :m Data.List Data.Ratio
| :}
Prelude Data.List Data.Ratio
這也允許:m +...
添加一些模塊,或:m -...
刪除一些模塊。 如果您談論的是您自己的模塊(可用源代碼),您可以在任何模塊名稱前加一個星號,將其內部內容帶入 scope。
但是,您不能進行更高級的導入(限定、隱藏或僅導入某些內容)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.