2014-03-03 30 views
0

如何從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以params爲食。

我不確定程序是錯的還是STDINPUT不好。

有人可以指導我在這裏。

我得到這個是這樣的:

請輸入參數1:請輸入參數2:演示:是不是連打印文件

輸出的 結束:hGetLine。

STDIN Input: 123 231 
+0

你在解釋器中運行這個嗎?你應該編譯它,如果你不是那麼試一試。 –

+0

@ ThomasM.DuBuisson我正在使用compileonline.com,我沒有問題編譯只是輸出爲空的所有時間 – rao

+0

它看起來像你正在添加'haskell平臺'和'真實世界 - haskell'標籤你所有的問題。請勿添加不適用的標籤 - 例如根本沒有任何問題使用任何庫,因此顯然不是平臺特定的。 –

回答

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的單行並將其按空格拆分。

+0

該死的每天都有新東西 – rao

2

您的compileonline.com網站不支持多行stdin。如果你刪除第二個getLineparam2你的程序工作。

您看到的錯誤與stdin在第二個getLine完成之前關閉有關。

任何描述「Haskel」的網站可能都不是一個好的網站。