如何从haskell中获取用户的多个参数?
module Main where
main :: IO ()
main = do
putStrLn "Please enter param1: "
param1 <- getLine
putStrLn "Please enter param2: "
param2 <- getLine
putStrLn $ "you entered" ++ param1 ++ "param 2:" ++ param2
我正在使用http://www.compileonline.com/compile_haskell_online.php来提供参数。
我不确定程序是否错误或STDINPUT是否正常。
有人可以在这里指导我。
我得到的就是这个:
请输入param1:请输入param2:demo :: hGetLine: 文件结尾
甚至没有打印输出。
STDIN Input: 123 231
答案 0 :(得分:2)
您的compileonline.com
网站不支持stdin
中的多行。如果您删除了第二个getLine
和param2
您的程序。
您看到的错误与stdin
在第二个getLine
完成之前关闭有关。
任何拼写它'Haskel'的网站可能不是一个好网站。
答案 1 :(得分:1)
看起来输入是1行,而你期望2行。将输入放在两行或将代码更改为
module Main where
main :: IO ()
main = do
line <- getLine
let
params = words line
param1 = params !! 0
param2 = params !! 1
putStrLn $ "you entered" ++ param1 ++ "param 2:" ++ param2
这将获取单行stdin并按空格分割。