You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haskell自定义Point数据类型如何编写Eq实例以支持elem函数对比

Haskell Point类型Eq实例编写方案

elem函数的类型约束要求传入的元素类型必须实现Eq类型类才能进行相等性判断,针对你定义的Point类型,有两种实现方式:

  • 方案1:自动推导实现(适用于默认相等逻辑的场景)
    编译器可以自动为你的Point类型生成符合预期的相等判断逻辑,仅需要在类型定义末尾加deriving Eq即可:
    data Point = Point Int Int deriving Eq
    
    自动生成的逻辑会判断两个Point相等当且仅当它们的两个Int参数分别相等,完全适配你当前的坐标对比需求。
  • 方案2:手动实现实例(适用于需要自定义相等规则的场景)
    如果你后续需要调整相等判断的逻辑,也可以手动编写Eq实例:
    instance Eq Point where
      (Point x1 y1) == (Point x2 y2) = x1 == x2 && y1 == y2
    

两种方案任选其一添加到你的代码中,drawField函数里的elem调用就能正常运行了。

内容的提问来源于stack exchange,提问作者user17441617

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:36:03