中缀函数是否可以包含2个以上的参数?

时间:2013-10-27 19:10:24

标签: ocaml

我对infix函数感到有点困惑。

因此,如果我定义let (++) x y = ...,则++是一个中缀函数。我可以按如下方式使用它:

  1. x ++ y
  2. (++) x y
  3. 基本上如果我删除括号,我可以将第一个参数放在左边,第二个放在右边。

    然后我可以定义3个参数,例如let (++) x y z = ...

    如果我在utop中let (++) x y z = x + y + z,那就可以了,给我:

    utop # let (++) x y z = x + y + z;;
    val ( ++ ) : int -> int -> int -> int = <fun> 
    

    我可以使用(++) 1 2 3,答案是6

    但是(++)是一个中缀函数吗?如果我想纯粹使用++,我该如何将x,y,z放在它周围?

1 个答案:

答案 0 :(得分:3)

# (1 ++ 2) 3;;
- : int = 6

虽然我不确定你什么时候真的想这样做......