为什么这个[haskell]编译错误?

时间:2013-09-27 19:49:12

标签: haskell compiler-errors

module Main

alicebob :: String -> String
alicebob "alice" = "Hi alice"
alicebob "bob" = "Hi bob"
alicebob _ = "Hi person whose name is neither alice nor bob."

greet :: IO ()
greet = do
      putStrLn "hi. whats your name?"
      name <- getLine
      putStrLn (alicebob name)

简单的编程练习,以获得一些用户输入,并回复。刚开始学习haskell所以请原谅这个简单的问题。在第alicebob :: String -> String行上收到错误。 我该如何解决?

1 个答案:

答案 0 :(得分:8)

模块标头必须包含where

module Main where
--          ^^^^^

编译器期望找到where(可能在导出列表之前),当它找到alicebob时,它会抛出错误。