Ich versuche, zwei polymorphe Tupel paarweise zu addieren. (Die Typen des ersten Elements in einem Tupel sollte die gleiche wie die erste in der zweiten und ebenfalls für das zweite Element sein) Hier ist mein Code:Erstellen einer Koordinatenklasse in Haskell
module Main where
class Coordinate a where
createCoordinate :: a
getFirst :: (a,b) -> a
getSecond :: (a,b) -> b
addCoordinates :: (a,b) -> (a,b) -> (a,b)
instance Coordinate() where
createCoordinate =()
getFirst (a,b) = a
getSecond (a,b) = b
addCoordinates a b = (getFirst a + getFirst b, getSecond a + getSecond b)
Also, das Problem ist, mit meiner addCoordinates Funktion. Ich habe mich gefragt, ob mir jemand helfen könnte, wie man die Funktion implementiert. Danke! :)
Ja, ich Haskell bin sehr neu. Meine vorherige Programmiererfahrung wäre mit Java gewesen. Gibt es etwas Spezifisches, das ich für dich klären könnte? –
Warum arbeiten alle Klassenfunktionen an Tupeln und nicht an Koordinaten? Was ist der Zweck der 'b' Typ Variable, die die meisten Ihrer Methoden haben - wie warum arbeiten Sie mit Tupeln, bei denen das erste Element eine Koordinate ist und das zweite Element willkürlich ist? Und wie macht es Sinn, dass der Einheitswert eine Koordinate ist? – sepp2k
Ich glaube nicht, dass Sie hier eine 'Klasse' wollen. Sie möchten nicht, dass sich beliebige Typen wie Koordinaten verhalten. Sie möchten einen Datentyp, der ein Wertepaar enthält. – pat