如何在Haskell源码文件中引入模块?import出现解析错误怎么办?
Haskell 模块引入语法及 import 解析错误解决方法
正确的模块引入语法
Haskell 要求所有 import 语句必须放置在模块声明之后、业务代码之前,完整的合法文件结构如下:
-- 可选的模块声明,省略时默认是 module Main where module Main where -- 所有 import 语句必须放在这个位置,顶格书写 import Data.Maybe -- 后续才可以写自定义函数、main 函数等业务代码 main :: IO () main = print $ fromJust (Just "test")
报错排查步骤
你遇到的 parse error on input 'import' 报错,基本都是位置或格式问题,按以下顺序排查即可:
- 检查 import 语句的位置:确认
import语句上方除了可选的模块声明外,没有其他任何代码(注释不会影响,但函数定义、变量声明、main 函数写在 import 前面都会直接触发报错)。 - 检查缩进:确认
import语句是顶格书写的,没有前置的空格或制表符,Haskell 对缩进敏感,错误缩进会直接导致解析失败。 - 检查隐藏字符:如果是复制粘贴的
import语句,可能携带零宽空格、BOM 头等不可见字符,可以手动删除整行重新手写测试。 - 检查特殊导入写法:如果用了别名导入、限定导入等写法,确认语法符合你使用的 GHC 版本要求,基础导入一般不会触发版本兼容问题。
内容的提问来源于stack exchange,提问作者user202004
相关产品推荐
相关产品推荐

