我正在尝试用 ghc 编译一个非常小的 haskell 代码:
module Comma where
import System.IO
main = do
contents <- getContents
putStr (comma contents)
comma input =
let allLines = lines input
addcomma [x] = x
addcomma (x:xs) = x ++ "," ++ (addcomma xs)
result = addcomma allLines
in result
我用来编译的命令是:
ghc --make Comma.hs
我得到了这个答案:
[1 of 1] 编译逗号 ( Comma.hs, Comma.o )
不生成文件,也没有警告或错误消息。
如果我从代码中注释“模块逗号位置”行,它会正确编译:
[1 of 1] 编译 Main ( Comma.hs, Comma.o ) 链接逗号 ...
我不明白发生了什么。我正在使用 ghc 7,4,1(Glasgow Haskell 编译器,版本 7.4.1,由 GHC 版本 7.4.1 引导的第 2 阶段)和 ubuntu linux。
如果有人能说出为什么不使用模块定义编译,我将不胜感激