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

如何在OCaml中将前缀函数用作中缀运算符?

OCaml中前缀函数转中缀用法的实现方式

OCaml本身没有像Haskell那样用反引号直接将前缀函数转为中缀运算符的语法,但可以通过两种替代方式实现类似效果:

  • 自定义中缀运算符
    如果你想让某个前缀函数支持中缀调用,可以手动包装出一个对应的中缀运算符。比如有个计算两数乘积的前缀函数mult,可以这么做:

    let mult x y = x * y
    let ( ** ) = mult  (* 自定义中缀运算符 ** )
    

    之后就能用中缀形式调用:3 ** 4,效果和mult 3 4完全一致。

  • 借助管道与部分应用(小众写法)
    利用管道运算符|>和部分应用,也能模拟出类似中缀的写法,但可读性较差,不推荐实际使用:

    let mult x y = x * y
    3 |> mult |> (fun f -> f 4)  (* 等价于 mult 3 4 *)
    

另外要注意,OCaml对自定义中缀运算符的字符有要求,只能由! $ % & * + - . / : < = > ? @ ^ | ~这些符号组成,不能用字母或数字开头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:12:03