我就在Haskell的IO單子的更深層次的運作對他們 wiki讀書了,我碰到這個代碼Haskell的IO例如
main = do a <- ask "What is your name?"
b <- ask "How old are you?"
return()
ask s = do putStr s
readLn
這對我來說很有意義來了。 ask函數應該打印出給它的字符串並返回 可以傳遞給a或b的一行。
然而,加載到GHCi我得到的問題。告訴我沒有使用ask的讀取實例,並且我可以導入GHC.Read。這不應該是必要的。這段代碼在Haskell.org上,所以我認爲它應該可以工作。語言中的某些內容是否發生了變化,或者我缺少一些重要的理解?
不askOther和askStringhave之間的差額作爲一個傳遞一個int和其他通過一個與他們的使用做使ScopedTypeVariables extention串? – 2013-03-09 08:44:24
@RyanCori,'askString :: String - > IO String',但是'askOther ::(Read a)=> String - > IO a'(閱讀missingnos a''可以成爲'Int'的精彩答案)。你也可以使用'askOther' *作爲字符串*,但是程序的用戶必須輸入'「Arash」'而不是簡單的'Arash'。 – Tarrasch 2013-03-09 14:54:21