这就是我定义堆栈类型的方式。可能有更好的方法,但现在让我们坚持这个。
data Stack' v = Stack' [v] Int deriving (Show)
所以像 push' 这样的东西看起来像这样
push' :: (Ord v) => Stack' v -> v -> Stack' v
push' (Stack' l m) a = if m <= length l then Stack' l m else Stack' (l ++ [a]) m
但我无法为此定义函子。我的这次尝试失败了,说“Parse error in pattern: v”
instance Functor Stack' where
fmap f (v l) = (map f v) (l)
有人可以帮我定义函子吗?