2

我对infix功能有点困惑。

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

  1. x ++ y
  2. (++) x y

基本上,如果我删除括号,我可以把第一个参数放在它的左边,把第二个放在它的右边。

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

如果我let (++) x y z = x + y + z在 utop 中做,没关系,给我:

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

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

但是是中(++)缀函数吗?如果我想纯粹使用++,我应该如何x,y,z解决它?

4

1 回答 1

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

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

于 2013-10-27T19:46:43.690 回答