小编kaw*_*han的帖子

与Haskell中的类型匹配的模式

假设我有一个包含各种对象坐标的类型,定义如下:

   type Point = (Int, Int)

   data Object = A Point
               | B Point
               | C Point
Run Code Online (Sandbox Code Playgroud)

我想创建一个检查对象重叠的函数,就像这样

   checkOverlap:: Object -> Point -> Bool
Run Code Online (Sandbox Code Playgroud)

我想只定义一个适用于所有对象的函数,而不必指定"checkOverlap(A point)(x,y)","checkOverlap(B point)(x,y)"等等.

我已经搜索了问题,但我能找到的唯一解决方案是添加一个中间类型,它将收集所有不同的对象,以便您可以在该类型上进行模式匹配.但是,由于这是一项家庭作业,我不允许修改大块代码以适应这种新类型.

还有其他方法吗?也许甚至没有模式匹配.似乎不好的编程必须多次复制相同的功能.

haskell types pattern-matching

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

标签 统计

haskell ×1

pattern-matching ×1

types ×1