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

为什么Haskell中mod、elem这类函数两侧要加引号样式的符号?

Haskell反引号语法解答

你看到的包裹mod、elem的符号是反引号(`),属于Haskell的官方语法糖,作用是将双参数的前缀函数转换为中缀运算符使用,本身不改变函数的功能。


具体规则说明

  • Haskell中的函数默认是前缀调用形式,你给出的两个例子对应的原生前缀写法如下:
    -- 原中缀写法 c `elem` ['A'..'Z'] 等价于:
    elem c ['A'..'Z']
    -- 原中缀写法 x `mod` 7 等价于:
    mod x 7
    
  • 反引号转换中缀的写法仅适用于恰好有2个参数的函数,参数数量不符的函数无法使用该语法。
  • 设计该语法的核心目的是提升代码可读性:运算、判断类的双参数函数用中缀形式书写,更符合大众的阅读和表达习惯,比如x mod 7 == 3读起来就是“x对7取模的结果等于3”,比前缀写法(==) (mod x 7) 3直观很多。

补充小技巧

本身是中缀的运算符也可以用括号包裹转成前缀调用,和反引号的功能刚好相反,比如:

-- 中缀写法 2 + 3 等价于前缀写法:
(+) 2 3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:15:02