【发布时间】:2012-01-25 06:58:30
【问题描述】:
我正在解决编写类似于 C++ 程序的 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 代码,我创建了一个数据类型 Rectangle
data Rectangle = Rectangle Length Width deriving (Eq, Show , Read)
type Length = Int
type Width = Int
然后我想制作一个可以充当构造函数的加载函数。但我不明白如何使用不同数量的参数实现函数重载。 请帮忙。谢谢。
【问题讨论】:
-
我不会费心尝试在 C++ 之后为 haskell 建模;它只会导致很多痛苦。另外,为什么你的第二个矩形构造函数是一条线?我认为更明智的实现是默认为 (1, 1),如果你得到一个 int,则传入 (x, x),形成一个正方形。
-
听说过构造函数初始化列表吗?
-
@VladLazarenko:听说过仍在学习的人吗? (提示:你在其中,每个人都是)
标签: haskell