为什么 Haskell 解释器 (GHCI 7.10.3) 需要函数定义在 let 表达式中,但如果函数定义在 let 表达式中,Haskell 编译器 (GHC 7.10.3) 会抛出解析器错误?
我正在完成“ Learn You a Haskell for Great Good!” Baby的第一个函数是doubleMe:doubleMe x = x + x
为什么解释器接受这个定义,如果它在一个 let 表达式中,否则在输入 '=' 上抛出一个解析错误?同时,如果我从文件中编译相同的函数,如果函数定义在 let 表达式中,为什么 GHC 会抛出解析错误,而如果它不在 let 表达式中,则编译定义?来自 Lisp 背景,我很惊讶交互式 Haskell 和文件加载和编译 Haskell 以不同的方式处理这些定义。