小编Fre*_*y J的帖子

Haskell:类型变量对于类实例不明确

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)

haskell types class

1
推荐指数
1
解决办法
128
查看次数

标签 统计

class ×1

haskell ×1

types ×1