Ich versuche zu verstehen, wie Diagramme Bibliothek in Haskell zu verwenden.So erstellen Sie diese einfache GIF-Animation mit Diagrammen
Hier ist mein Versuch, eine einfache GIF-Animation zu machen, die zwischen zwei Kreisen mit den Radien Schalter 1 und 2. Ich habe versucht zu imitieren, was ich auf
sahHier ist der Code, habe ich versucht.
{-# LANGUAGE NoMonomorphismRestriction #-}
import Diagrams.Backend.SVG.CmdLine
import Diagrams.Prelude
delays = take 2 (repeat 3)
gif :: [(Diagram B, Int)]
gif = zip [circle 1, circle 2] delays
main = mainWith $ gif
Aber das kompiliert nicht! Die Fehler, die ich bekomme, sind
[1 of 1] Compiling Main (maze.hs, maze.o)
maze.hs:10:8:
No instance for (Diagrams.Backend.CmdLine.Parseable
(Diagrams.Backend.CmdLine.MainOpts
[(QDiagram B V2 Double Any, Int)]))
arising from a use of ‘mainWith’
In the expression: mainWith
In the expression: mainWith $ gif
In an equation for ‘main’: main = mainWith $ gif
Wo gehe ich falsch in den Code oben?
Anstelle von 'take 2 (repeat x)' können Sie 'replicate 2 x' verwenden. –
@JoachimBreitner: oder einfach' repeat x' in diesem Fall, da die 'zip' dafür sorgt, dass sie nur abgeschnitten wird richtige Länge – Cactus
@Cactus Or einfach 'map (\ d -> (d, 3))', da 'zip'ing mit einer konstanten Liste Overkill ist. –