2017-03-14 10 views
0

Ich bin neu in Haskell und ich versuche, die Position eines gezeichneten Pfades zu ändern.Mapping-Liste mit Funktion in Haskell

let redPath = Path[Point 420 750, Point 420 550] red Solid 

drawPicture 10 [redPath, movePictureObject (Vector 100 100) 
redPath] 

Die Funktionen movePictureObject und movePoint sollte jeden Punkt des Pfades mit einem gegebenen Vektor (100,100) ändern.

movePoint :: Point -> Vector -> Point 
movePoint (Point x y) (Vector xv yv) 
    = Point (x + xv) (y + yv) 

movePictureObject :: Vector -> PictureObject ->PictureObject 
movePictureObject vec (Path points colour lineStyle) 
    = Path map (movePoint (points vec)) red Solid 

Ich bin nicht sicher, wie die Funktion richtig Karte zu verwenden, ich habe hier schon mehrere Beiträge gelesen und sah andere Tutorials.

Vielen Dank.

+1

Was ist 'Pfad'? Was ist "Punkt"? Was ist ein 'PictureObject'? Was ist "Vektor"? Warum ist das markiert [Tag: Wörterbuch]? Und was ist deine eigentliche Frage? – Zeta

Antwort

1

Meine Kristallkugel sagt mir, dass Sie nur (map movePoint (points vec)) anstelle von map (movePoint (points vec)) in der letzten Zeile benötigen.

+0

'(Karte (\ p -> movePoint p vec) Punkte) scheint mir wahrscheinlicher. –

+0

Das hat @Daniel Wagner gemacht – torjussa