【问题标题】:Cant load Prelude in ghci interpreter in VS code无法在 VS 代码的 ghci 解释器中加载 Prelude
【发布时间】:2021-03-14 01:23:11
【问题描述】:

我已经按照 Chocolatey 和 haskell.org 上的说明安装了 Haskell 平台。 我正在使用 Windows 10。 我的 hello.hs 程序符合命令提示符,但是当我尝试在 VS 代码中执行相同操作时, 它不会加载 Prelude,我认为这是运行 Haskell 程序所必需的。 我认为这可能是一个配置问题,但我找不到任何有用的文档。 我该如何解决这个问题并打开 Prelude? VS code 显示的问题与这个问题有关吗?

【问题讨论】:

  • “它不会加载 Prelude”,你的意思是提示显示 ghci> 而不是 Prelude>?如果是这样,那不是问题;区别仅在于外观。
  • 没错,但是我该如何运行程序呢?在我目前看到的所有指令中,您只需要输入 ghci,然后它应该会自动切换到 Prelude>,这在我的情况下不会发生。我试着按照现在的方式运行,但它不会工作
  • 在启动ghci 时尝试ghci hello.hs",或在ghci> 提示符下尝试:l hello.hs

标签: haskell visual-studio-code ghci haskell-prelude


【解决方案1】:

您的屏幕截图中没有任何问题。提示文本是 ghci> 而不是 Prelude> 因为 GHCi 不再默认在提示上显示已​​加载的模块(请参阅 the GHC 9.0.1 changelog。无论如何,Prelude 正在加载。IDE 中显示的警告是一种样式建议,对于让您的代码运行而言,这无关紧要。GHCi 提示符下的As chi suggests:l hello.hs 应该足以加载它。

【讨论】:

    【解决方案2】:

    如果我在控制台中输入 main,那么它可以工作

    ghci> main
    "haskell"
     name
     "hi, name"
     ghci>
    

    【讨论】:

      【解决方案3】:

      这可能有效

      $ ghci
      ghci> import Prelude
      Prelude> printStrLn "Hello World!"
      Hello World!
      Prelude>
      

      您可能只需要运行import Prelude

      【讨论】:

      • @DLaningham 我对 Windows 不熟悉,会不会是 VSCode 终端使用的终端应用程序与您安装 GHC 的终端应用程序不同?
      • (1) Prelude 实际上没有在 OP 的提示下加载的可能性很小;所有迹象都指向XY problem。 (2) 即使 Prelude 没有被加载,import Prelude 也不会将提示文本从ghci> (固定字符串)更改为Prelude> (加载模块列表)。 (3) 您的意思是 putStrLn 而不是 printStrLn(我知道这只是一个错字,但对于像 OP 这样的语言完全陌生的人来说,这是一个令人困惑的错字)。
      猜你喜欢
      • 1970-01-01
      • 2020-03-03
      • 2015-03-09
      • 2021-08-14
      • 2011-12-05
      • 1970-01-01
      • 2022-11-19
      • 2020-03-13
      • 1970-01-01
      相关资源
      最近更新 更多