我用一个简单的程序玩弄在Haskell:哈斯克尔做语法和I/O
hello :: String -> String
hello s = "Hello, " ++ (trim s) ++ "!\n"
trim :: String -> String
trim [] = []
trim s = head $ words s
main :: IO()
main = do putStr "\nPlease enter your name: "
name <- getLine
hstring <- return $ hello name
putStr hstring
这是我期待的输出:
Please enter your name: John Doe
Hello, John!
这工作当我加载预期该程序转化为ghci。然而,当我编译使用该程序
ghc -o hello.exe hello.hs
启动,等待输入,然后同时打印两个提示:
John Doe
Please enter your name: Hello, John!
为什么是交互式环境和编译器之间不同的行为,我怎样才能让编译器做我想做的事?
在此先感谢您的帮助!
'主要= putStr “请输入你的名字:” >>函数getline >> = putStr。你好“ - 只是为了好玩。 – 2011-06-03 20:25:38