gpt4 book ai didi

haskell - ADT相关程序设计

转载 作者:行者123 更新时间:2023-12-02 18:36:12 25 4
gpt4 key购买 nike

我有一个类型

data Phase = PhaseOne
| PhaseTwo
| PhaseThree deriving Enum

每个阶段要执行五个操作

  • 阅读
  • 验证
  • evalStatus
  • 更新

我开始尝试创建一个类型类。问题是,它们都是同一类型。我希望能够做类似的事情

instance MyClass PhaseThree where
read a = ...

此外,我需要重载返回类型。

我知道类型类不是我想要的。但我不确定如何做我想做的事。我想GADT 的一部分,但这不太正确,因为我需要能够将每个实例放在单独的文件中。

我想要一些关于我需要调查哪些机制的建议?我提供了足够的信息吗?

最佳答案

我建议稍微颠倒一下。

data Phase = Phase {
read :: String -> Foo,
write :: Foo -> IO (),
validate :: Foo -> Bool,
evalStatus :: IO (),
update :: Foo -> Foo
}

phaseOne, phaseTwo, phaseThree :: Phase

(或将类重新调整为显式记录)。

关于haskell - ADT相关程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com