Vererbung zu erweitern, eine Datenstruktur in Haskell

Als C++ - Programmierer, die versuchen zu lernen, Haskell hier. Bitte entschuldigt diese wahrscheinlich einfache Frage. Ich will übersetzen ein Programm, das stellt 3D-Formen. In C++ habe ich sowas wie:

class Shape {
public:
  std::string name;
  Vector3d position;
};

class Sphere : public Shape {
public:
  float radius;
};

class Prism : public Shape {
public:
  float width, height, depth;
};

Ich versuche zu übersetzen, diese zu Haskell (unter Verwendung von Datensätzen?) so kann ich einige Funktionen, die wissen, wie zu bedienen, auf einer Form (wie der Zugriff auf name und position), und andere als nur wissen, wie zu bedienen, auf Kugeln, wie die Berechnung etwas, was sich auf seine position und radius.

In C++ eine member-Funktion kann der nur Zugriff auf diese Parameter, aber ich habe eine harte Zeit, herauszufinden, wie dies zu tun ist in Haskell mit Datensätzen, oder Typ-Klassen, oder was auch immer.

Dank.

InformationsquelleAutor Steve | 2009-11-05
Schreibe einen Kommentar