1
在GHCi中,當我鍵入pure 2
時,它返回2
;或pure "aa"
返回"aa"
。我想知道這個應用實例是如何由GHCi解決2或「aa」的。瞭解如何在Haskell中解析純函數
在GHCi中,當我鍵入pure 2
時,它返回2
;或pure "aa"
返回"aa"
。我想知道這個應用實例是如何由GHCi解決2或「aa」的。瞭解如何在Haskell中解析純函數
GHCi執行一些神奇的操作,方便用戶使用。
當輸入表達式類型爲... => f a
的表達式時,它會嘗試將f
實例化爲IO
。在你的情況下,這是可能的,因爲IO
是一個應用(和monad)。其次,當輸入表達式爲... => IO a
的表達式時,它作爲IO動作運行。
最後,如果a
屬於Show
類,則打印結果。在你的情況下,"aa"
是結果(並且類型a
是String
),所以GHCi打印該結果。
謝謝齊先生,我現在開悟了:) –
http://stackoverflow.com/a/28979021/3608068 – user3608068
謝謝@ user3608068。您提供的鏈接完全可以回答我的問題,但是當我搜索它時,我無法找到它。 –