У меня есть список команд ([Command]
), который выглядит как [forward 15, left 20, right 10]
.
Я хочу добавить forward 15
к [Command]
всякий раз, когда вижу команду forward 15
. Я использовал elem
и ==
, чтобы сравнить, является ли элемент forward 15
или нет, но это дает мне ошибку No instance for (Eq Command) arising
.
Кроме того, в другой функции я хочу добавить [left 15, forward 15, forward 15, right 15, right 15, forward 15, forward 15, left 15]
к [Command]
всякий раз, когда вижу 4 последовательные команды forward 15
.
Поэтому мой вопрос заключается в том, как сравнивать функции, потому что forward
- это функция, и я не могу сравнить ее, используя elem
или ==
.
Command
определяется как type
, а не data
, поэтому я не могу использовать deriving Eq
.
type Command = Funcs -> (Picture, Funcs)
data Funcs = Funcs {pen :: Bool, angle :: Float, point :: Point, penColor :: Color} deriving (Eq, Show)
forward :: Float -> Command
forward x = ....