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のコードを記述するiは、私はコンストラクタとして作用することができる負荷を機能させると考え
data Rectangle = Rectangle Length Width deriving (Eq, Show , Read)
type Length = Int
type Width = Int
長方形
データ型を作りました。しかし、私は引数の異なる数で関数のオーバーロードを実装する方法を理解していません。 助けてください。ありがとう。
私はC++の後でhaskellをモデル化しようとはしません。それだけで多くの痛みにつながるでしょう。また、2番目の四角形のコンストラクタはなぜ線ですか?私はより賢明な実装は、(1,1)にデフォルトすることになり、1つのintを取得する場合は、(x、x)を渡して正方形を形成すると思います。 – alternative
コンストラクタの初期化リストについて聞いたことがありますか? –
@VladLazarenko:まだ学んでいる人のことを聞いたことがありますか? (ヒント:皆さんの中にいます) –