小编Fer*_*con的帖子

Haskell递归类型类

我想基于元组创建递归实例类型.我要找的是类似的东西:

class Provider a b where
  getInstance :: a -> b

instance Provider a b => Provider (x, a) b where
  getInstance (x, a) = getInstance a

instance Provider (b, x) b where
  getInstance (b, _) = b

tryFunc1 :: Int
tryFunc1 =
  let provider = ("test", (10, ())) :: (String, (Int, ()))
  in getInstance provider

tryFunc2 :: String
tryFunc2 =
  let provider = ("test", (10, ())) :: (String, (Int, ()))
  in getInstance provider
Run Code Online (Sandbox Code Playgroud)

不幸的是,haskell无法解决这个问题.任何原因?

haskell typeclass

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

标签 统计

haskell ×1

typeclass ×1