我正在編寫類似於C++程序的Haskell代碼的問題。在Haskell中實現函數重載
的C++代碼是:
class Rectangle
{
private:
int length;
int width;
public:
Rectangle()
{
length = 0;
width = 0;
}
Rectangle(int x)
{
length = x;
width =0;
}
Rectangle (int x , int y)
{
length = x;
width = y;
}
};
要編寫類似Haskell代碼我犯了一個數據類型矩形
data Rectangle = Rectangle Length Width deriving (Eq, Show , Read)
type Length = Int
type Width = Int
然後我認爲使得其可以作爲構造作用的負荷的功能。但我不明白如何用不同數量的參數實現函數重載。 請幫忙。謝謝。
我不打擾試圖在C++之後對haskell建模;它只會導致很多痛苦。另外,爲什麼你的第二個矩形構造函數是一行?我認爲一個更明智的實現是默認爲(1,1),如果你得到一個int,傳入(x,x),形成一個正方形。 – alternative
有沒有聽說過構造函數初始化列表? – 2012-04-21 02:56:14
@VladLazarenko:曾聽說過仍在學習的人嗎? (提示:你是其中的人,每個人都是) –