ocaml:几个参数函数的基本语法

时间:2018-09-20 20:31:19

标签: syntax ocaml

我正在学习OCaml,目前我是一个完整的初学者。我试图习惯语法,只花了15分钟时间调试一个愚蠢的语法错误。

let foo a b = "bar";; let biz = foo 2. -1.;;

我遇到错误This expression has type 'a -> string but an expression was expected of type int。我解决了该错误,但它提示我要学习什么是处理这种语法特殊性的最佳方法。

基本上,OCaml将我打算作为数字常量-1.的内容视为两个单独的标记:-1.,最终我只向foo传递了一个参数。在其他语言中,我不熟悉这种情况,因为参数用逗号分隔(或者在Scheme中有括号)。

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

1 个答案:

答案 0 :(得分:4)

可以使用一元负运算符~-.来避免此问题:foo ~-.1.(及其整数~-),但是在有问题的地方加上括号通常更简单表达。