Застрял. Ругается на последнюю строчку:"Couldn't match expected type `[a0]' with actual type `Params'"
Params — это же по сути и есть массив? Почему он не может получить его длину?
data Dir = X | Y | Z --направления движения
x :: Double -> (Dir, Double)
x val = (X, val)
y :: Double -> (Dir, Double)
y val = (Y, val)
z :: Double -> (Dir, Double)
z val = (Z, val)
data Params = Params [(Dir, Double)]
--доступные команды станка
data Command = G0 Params
| G1 Params
| F Double
instance Show Dir where
show d
| X <- d = "X"
| Y <- d = "Y"
| Z <- d = "Z"
instance Show Command where
show d
| G0 l <- d = "G0 " ++ show l
| G1 l <- d = "G1 " ++ show l
| F val <- d = "F " ++ show val
instance Show Params where
show l = show $ length l