2013-02-26 86 views
-3

我想寫一個函數打印一個語句並調用另一個函數,但我有一些麻煩,定義它是什麼類型給它。這是我到目前爲止。Haskell函數

代碼:

bad_input :: --dont know what goes here 
bad_input = putStrLn "Bad Input" 
      evaluate_input  
+14

http://learnyouahaskell.com – 2013-02-26 05:16:04

+1

得到'ghci'它會幫助你學習過程 – pyCthon 2013-02-26 05:16:33

+9

你正在使用StackOverflow來達到一個錯誤的目的。你已經問過幾個非常不切實際的問題,其中沒有一個問你是否曾經閱讀過至少一本書或甚至是關於Haskell的教程。 – 2013-02-26 07:16:29

回答

1

首先,你不需要類型簽名,哈斯克爾將在推斷它爲您幾乎所有的情況。其次,你需要在=的正確視力表達,但你有兩個不相關的表達 - 你需要以某種方式將他們綁在一起。這導致了第三點:IO與命令式語言完全不同,因爲你需要用稱爲IO的monad將你與「真實世界」的交互包裝起來,因爲Haskell是一種非嚴格語言(這意味着可以執行「只是在時間上「 - 對輸入/輸出不利)和純語言(這意味着一旦它們被計算,值就不會改變)。

我可以爲你寫這段代碼,但是我覺得這樣做會比弊大於弊,讓你比以前更困惑。所以請按照Cat Plus Plus提供的建議閱讀http://learnyouahaskell.com/(或http://book.realworldhaskell.org/)以獲得真正的理解。從簡單的事情開始,在Haskell中IO並不容易。