小编TWh*_*hit的帖子

Haskell类型类的基础知识和"无法从上下文(〜)中推断出(〜)"错误

我对Haskell比较陌生,我相信我误解了关于类型类的基本内容.假设我想创建一个类型类'T',实现由四个代数类型'A,B,C和D'支持的n-ary树,其结构最大深度为4.这似乎是一个愚蠢的例子,但我认为这最能说明我的观点.

module Test where

class T t0 where
    parent :: T t1 => t0 -> Maybe t1
    children :: T t1 => t0 -> [t1]

data A = A [B]
instance T A where
    parent (A _) = Nothing
    children (A bs) = bs

data B = B A [C]
instance T B where
    parent (B a _) = Just a
    children (B _ cs) = cs

data C = C B [D]
instance T C where
    parent (C b …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming typeclass

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