如何在 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))
是一个不能应用于 1
和 2
的元组。
我必须在两个不同的变量中,在一个输入中得到两个整数,用 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))
是一个不能应用于 1
和 2
的元组。