我可以通过这个 haskell 练习得到一些想法吗?

Can I get some idea with this haskell exercise?

我得到了这个练习,但我不知道如何开始和解决它。

一个轴上的点

Haskell 的模式匹配是一个强大而有用的特性。例如,您的函数可以有多个公式,Haskell 将选择其中一个,例如,参数模式匹配:

isZero :: Int -> Bool
isZero 0 = True
isZero _ = False

这个简单的小函数应该只是告诉我我的参数是否等于零。我这样做没有任何比较,只是通过模式匹配。 0 匹配.. 好吧,字面意思是 0。但是 _ 匹配 一切 。这里的顺序很重要,选择第一个匹配的公式。

那么你的积分呢?它们表示为元组:(x, y)。我们可以通过模式匹配“查看”值:

isZeroPoint :: (Int, Int) -> Bool
isZeroPoint (0, 0) = True
isZeroPoint _      = False

好的,那么我们如何知道(二维)点是在 X 轴还是 Y 轴上?看看给出的例子,现在应该很明显了!

有了这个,你的练习题应该就能解决了! 如果您这样做了或仍有疑问,请反馈 ;)

PS:我没有详细说明完整的解决方案,因为我认为如果我为您做作业对您没有帮助。

PPS:为了简单起见,我只是选择了具体类型 Int,因为我不知道关于 Haskell 类型你还学过什么。可以使用不同的数字类型(例如 Integer)或更通用的类型。