我正在學習一個教程。 (真實世界哈斯克爾)頭部和尾部呼叫空列表帶來異常
而且我有一個有關頭部和尾部的空白列表調用的初學者問題:在GHCi中它返回異常。
直覺上我想我會說他們都應該返回一個空的列表。你能糾正我嗎?爲什麼不 ? (據我記得在OzML左邊或右邊的一個空列表返回零)
我當然還沒有在本教程中介紹過這個主題,但它不是一個錯誤的來源(如果不提供參數)? 我的意思是,如果傳遞給函數的參數列表可能是optionnal,那麼頭部讀取它們可能會導致錯誤?
我只知道GHCi的行爲,我不知道編譯時會發生什麼。
這實際上是「部分功能」更常見問題的特例。 「全部」函數將返回任何參數的結果。部分功能不全;一些參數將返回底部(即錯誤或無限循環)。處理所有語言(所有功能都是全部)正在進行,但不要屏住呼吸。 – 2010-08-22 19:54:55
我不明白「正在進行,但不要屏住呼吸」? 從我現在所做的事情來看,我傾向於更喜歡全局函數而不是部分函數。 – 2010-08-22 20:08:08
@Stephane Rolland:不要等待這種語言成爲現實;)對於大多數情況下,'Maybe a'類型是表達計算的最佳選擇,它可以*返回值。' – Dario 2010-08-22 20:12:42