OCaml标准库是否存在二元组构造函数?
OCaml标准库中的二元组构造函数
OCaml标准库中**(,)**就是你需要的替代函数,它本身就是一个接受两个参数并返回对应二元组的函数,完全等价于fun x y -> x, y。
用法示例
原本的scanf调用:
scanf "%d %d" (fun x y -> x, y)
可以直接替换为:
scanf "%d %d" (,)
补充说明
- 在OCaml中,
(,)是二元组的构造运算符,作为前缀函数使用时必须加上括号(单独写,会报错)。你可以在交互环境中验证它的类型:
其类型明确表示接受两个任意类型的参数,返回对应的二元组,完全匹配你的需求。# (,);; - : 'a -> 'b -> 'a * 'b = <fun> - 标准库中没有名为
pair或tuple的直接函数,但(,)就是官方提供的二元组构造函数。如果是三元组,对应的构造函数是(,,),以此类推。
内容的提问来源于stack exchange,提问作者user22288295
相关产品推荐
相关产品推荐

