Syntax ocaml:多个参数函数的基本语法

Syntax ocaml:多个参数函数的基本语法,syntax,ocaml,Syntax,Ocaml,我正在学习OCaml,在这一点上我是一个完全的初学者。我正试图习惯语法,我只是花了15分钟调试了一个愚蠢的语法错误 让foo a b=“bar”;; 让biz=foo2-1.;; 我收到一个错误此表达式的类型为'a->string,但表达式的类型应为int。我解决了这个错误,但它促使我学习处理这种语法特性的最佳方法 基本上,OCaml将我想要的作为数值常量-1.处理为两个独立的标记:-和1.,最后我只将一个参数传递给foo。在我熟悉的其他语言中,这种情况不会发生,因为参数用逗号分隔(或者在Sch

我正在学习OCaml,在这一点上我是一个完全的初学者。我正试图习惯语法,我只是花了15分钟调试了一个愚蠢的语法错误

让foo a b=“bar”;;
让biz=foo2-1.;;

我收到一个错误
此表达式的类型为'a->string,但表达式的类型应为int
。我解决了这个错误,但它促使我学习处理这种语法特性的最佳方法

基本上,OCaml将我想要的作为数值常量
-1.
处理为两个独立的标记:
-
1.
,最后我只将一个参数传递给
foo
。在我熟悉的其他语言中,这种情况不会发生,因为参数用逗号分隔(或者在Scheme中有括号)


在OCaml中处理这种语法特性的常用方法是什么?它是用括号(
foo 2.(-1.)
)围绕数字还是有其他方法?

有一个一元减号运算符
~.
可以用来避免这个问题:
foo~-.1.
(及其整数对应项
~-
)但在有问题的表达式周围添加括号通常更简单。

有一个一元减号运算符
~.
可以用来避免此问题:
foo~-.1.
(及其整数对应项
~-
)但是,在有问题的表达式周围添加括号通常比较简单。

您也可以使用
@
中缀运算符剪切一些括号<代码>foo 2@@-1
您还可以使用
@
中缀运算符剪切一些括号<代码>foo 2@@-1