如何在 ocaml 的一个条目中读取两个值?

how to read two values in one entry in ocaml?

我必须在两个不同的变量中,在一个输入中得到两个整数,用 space 分隔。

我已经完成 let (c, d) = Scanf.scanf " %d %d" (fun a b -> (a, b)) 但我收到此错误:This expression has type 'a * 'b but an expression was expected of type 'c -> 'd -> 'e

我该怎么做? 谢谢!

您的代码有效并且不会引发任何错误

let (c, d) = Scanf.scanf " %d %d" (fun a b -> (a, b))

由于此代码是从 stdin 读取的,您可能已经编写了

let (c, d) = Scanf.scanf " %d %d" (fun a b -> (a, b))
1 2;;

在顶层中,这将导致您看到的错误:解析器将上面的摘录读取为

Scanf.scanf " %d %d" (fun a b -> (a, b)) 1 2

并抱怨 Scanf.scanf " %d %d" (fun a b -> (a, b)) 是一个不能应用于 12 的元组。