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

Haskell代码中的|操作符是什么含义?是模式匹配还是构造器?

Haskell代码中|符号的作用

你给出的是Haskell语言的函数代码,其中的|是**卫语句(Guard Clause)**的语法标记,和构造器(Constructor)没有关系,它的作用就是按顺序匹配条件、执行对应逻辑。

具体规则

  • 每一个|后面跟着一个布尔类型的判断条件,所有卫语句会从上到下依次判断
  • 第一个结果为True的条件,对应的=后面的表达式会被作为函数的计算结果返回
  • 示例中最后一个条件里的otherwise是Haskell内置常量,值恒为True,用来处理所有前置条件都不满足的兜底场景

对应示例代码的逻辑说明

这个函数是用来计算到2021年11月10日为止的周岁年龄,三个卫语句分别对应三类场景:

  • 若出生月份小于11月:直接用2021 - 出生年份得到年龄
  • 若出生月份等于11月且出生日期小于等于10号:同样直接用2021 - 出生年份得到年龄
  • 其他情况(出生月份大于11月,或者11月出生但日期晚于10号):需要在年份差值基础上减1,得到实际周岁

补充说明

卫语句本质是多分支if-else的语法糖,在多条件判断的场景下,比层层嵌套的if-else写法可读性更高,是Haskell中非常常用的分支语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:36:05