Ocaml调用函数时没有给出正确数量的参数

时间:2015-01-17 23:40:11

标签: function arguments ocaml

如果我在ocaml中有一个函数:

let rec new_grammar rules nonterm  = 
  match rules with 
  | (expr, rules) -> if expr = nonterm then ............

我在另一个地方说new_grammar rules

expr如何知道它是否等于nonterm,因为我没有输入nonterm的参数

1 个答案:

答案 0 :(得分:1)

如果您在不提供全部参数的情况下应用函数,或者在OCaml用语中,当您进行部分应用程序时,结果值将是一个函数,它将采用其余参数,并计算为预期的返回值

示例,如果您将函数sum定义为:

let sum x y = x + y

稍后您将其部分应用于一个参数:

let plus_2 = sum 2

然后plus_2将是int -> int类型的一元函数,接受一个参数(即y)并向其添加2(以及赋予形式参数的参数) x