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

Haskell练习题求助:使用模式匹配判断坐标点是否在坐标轴上

实现代码
-- 显式类型签名:约束输入的坐标元素为可判等的数值类型,返回布尔值
onAxis :: (Num a, Eq a) => (a, a) -> Bool
-- 模式匹配:x坐标为0的点,直接返回True
onAxis (0, _) = True
-- 模式匹配:y坐标为0的点,直接返回True
onAxis (_, 0) = True
-- 模式匹配:其余所有情况返回False
onAxis _ = False
实现说明
  • 全程仅使用Haskell原生的多定义模式匹配实现,没有调用==等相等性测试函数,也没有使用if...else/case...of类分支语句,完全符合题目要求
  • 匹配逻辑完全覆盖坐标轴判定规则:只要x或y任意坐标为0,点就在坐标轴上,否则不在
  • 所有测试用例均能通过:
    • onAxis (0, 0) 匹配第一个分支返回True
    • onAxis (0, 100) 匹配第一个分支返回True
    • onAxis (50, 0) 匹配第二个分支返回True
    • onAxis (-12, 0) 匹配第二个分支返回True
    • onAxis (4, 5) 匹配第三个分支返回False,因此not (onAxis (4, 5))返回True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:15:03