如果我在ocaml中有一个函数:
let rec new_grammar rules nonterm =
match rules with
| (expr, rules) -> if expr = nonterm then ............
我在另一个地方说new_grammar rules
expr如何知道它是否等于nonterm,因为我没有输入nonterm的参数
答案 0 :(得分:1)
如果您在不提供全部参数的情况下应用函数,或者在OCaml用语中,当您进行部分应用程序时,结果值将是一个函数,它将采用其余参数,并计算为预期的返回值
示例,如果您将函数sum
定义为:
let sum x y = x + y
稍后您将其部分应用于一个参数:
let plus_2 = sum 2
然后plus_2
将是int -> int
类型的一元函数,接受一个参数(即y
)并向其添加2
(以及赋予形式参数的参数) x
)