import qualified Prelude
class List list where
toList :: list a -> [a]
fromList :: [a] -> list a
data Deque a = Deque [a] [a]
instance List Deque where
toList (Deque xs sy) = xs ++ reverse sy
fromList xs = Deque ys (reverse zs)
where (ys, zs) = splitAt (length xs `div` 2) xs
Run Code Online (Sandbox Code Playgroud)
我收到如下复制的错误。GHCI 似乎没有检测ys为 Deque,而是检测为类 List 的一般实例。
ghci> xs = [2, 3, 4]
ghci> ys = fromList xs
ghci> (Deque a b) = ys …Run Code Online (Sandbox Code Playgroud)