我有以下類型聲明:爲什麼下面的類型構造函數比數據構造函數的參數少?
data Quadruple a b = Quad a a b b
(有些人可能從承認這一宣言然而,另一個哈斯克爾教程)。
我明白代碼的意圖是:創建一個名爲Quadruple的數據類型。它有一個稱爲Quad的類型構造函數,它有四個值。前兩個值必須具有相同的類型,而最後兩個值必須具有相同的類型。
我無法向自己解釋爲什麼類型構造函數的參數比數據構造函數少。我可以想象的唯一解釋是Haskell能夠從類型聲明中推斷出,如果第一個值是a類型,那麼第二個值也是,如果第三個值是b類型,那麼第四個值也是如此。
這是正確的嗎?我在這裏錯過了什麼嗎?我知道Haskell有類型推斷,所以這是有道理的,但我不想用錯誤的心智模式運行。 (第二次嘗試學習Haskell)。