You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行ghci(9.2.7版本)时如何解决‘Variable not in scope’错误?

解决GHCi 9.2.7中1+1提示(+)不在作用域的问题

快速解决办法

在当前GHCi会话里输入以下命令,手动导入标准库的Prelude模块:

import Prelude

之后再执行1+1就能正常得到2的结果了。

错误原因解释

这个错误的意思是:当前GHCi会话里找不到(+)这个加法运算符的定义。正常情况下,GHCi启动时会自动导入Prelude模块——这个模块包含了所有Haskell基础运算、数据类型和常用函数,是写Haskell代码的默认基础库。出现这个问题,说明你的GHCi没有自动加载Prelude。

排查根本问题的步骤

  • 检查启动参数:确认启动ghci时有没有加-XNoImplicitPrelude参数,这个参数会强制关闭Prelude的自动导入。如果是用别名或者脚本启动的ghci,去掉这个参数即可。
  • 检查GHCi配置文件:查看本地的GHCi配置文件——Linux/macOS是~/.ghci,Windows是%APPDATA%\ghc\ghci.conf,看看里面有没有:set -XNoImplicitPrelude这类配置,有就注释掉(加--前缀)。
  • 用Stack正确启动GHCi:确保你是通过stack ghci命令启动的,而不是直接调用系统里的ghci。Stack会为你管理正确的GHC版本和依赖环境,避免全局环境混乱。
  • 重置Stack环境:如果怀疑是Stack环境配置出问题,先运行stack clean清理缓存,再用stack setup重新配置GHC,之后再启动ghci测试。

内容的提问来源于stack exchange,提问作者CCB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 22:32:40