2013-10-27 52 views
2

我有點困惑infix函數。中綴函數可以有2個以上的參數嗎?

所以,如果我定義let (++) x y = ...,那麼++是一箇中綴函數。我可以按如下方式使用它:

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

基本上,如果我去掉括號,我可以把第一個參數在它的左邊,而第二至其右。

那我可以定義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放在它周圍?

回答

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

雖然我不知道什麼時候你實際上要做到這一點...

相關問題