Types 我需要具有以下OCaml类型的函数定义

Types 我需要具有以下OCaml类型的函数定义,types,ocaml,function-definition,Types,Ocaml,Function Definition,我正在学习ocaml,但我无法理解这些类型的函数。谢谢 1- string option list -> int -> string * string list 2- ('a -> 'a -> 'b) -> 'a -> ('a -> 'b) * 'b 3- 'a list -> 'b list -> ('a -> 'b -> 'a * 'b list) 问题不清楚这些职能究竟应该做什么 然而,为了让你走上正确的道路,你可以看

我正在学习ocaml,但我无法理解这些类型的函数。谢谢

1- string option list -> int -> string * string list

2- ('a -> 'a -> 'b) -> 'a -> ('a -> 'b) * 'b

3- 'a list -> 'b list -> ('a -> 'b -> 'a * 'b list)

问题不清楚这些职能究竟应该做什么

然而,为了让你走上正确的道路,你可以看看。它们允许您向功能参数添加显式类型

例如,可以如下所示:

let my_function (a : string option list) (b : int) : string * string list = ("", []);;

我简直不明白这样的练习有什么用处。

你需要表现出一点努力,我们不仅仅是帮你做家庭作业。你能告诉我们你尝试过什么,和/或你的推理是什么,并指出你在弄明白它时遇到的一些具体问题吗?另外,请参见和。此外,函数的类型签名不是函数应该做什么的表达式。这里所期望的完全不清楚。@Richard Degenne不需要特定的函数,只需要得到这些类型就足够了。@glennsl是的,你说得对,但我是新来的。如果我在这里只是想拿hw的结果,很抱歉。我花了一些时间在这个问题上,我觉得这是浪费时间。因为正如Richard Degenne所说,没有关于函数的信息。如果问题是“编写bla-bla函数并获取这些类型”,我想我可以做到,但现在我想不出来了。如果你给我这样的提示“如果你做这个函数,也许你可以得到这种类型”,这对我来说就足够了。谢谢。你看过公开信了吗?我不知道你的老师打算让你从中学到什么,但他们这样做不太可能只是为了浪费你的时间。在没有上下文的情况下,从表面上看,我想说,这很可能是为了教您阅读类型,并且鉴于您之前所学的内容,提出一个与这些类型匹配的实现应该是相当简单的。实现的细节可能并不重要,它只需要使用上面的类型签名传递编译器。你能用你自己的话解释一下类型的意思吗?我假设有一个额外的条件,你应该使用参数来产生返回值。或者,如果不是这样,你就必须在第二种情况下这样做。我认为这个练习对教学生如何阅读和理解类型很有用。如果练习中包含了对实现的描述,那么重点将是根据描述来实现它,而不是类型。此外,练习的第一个任务通常相对来说比较琐碎,即“设置阶段”,并提示解决其余问题所需遵循的模式。它应该是相对明显的,并且容易完成,而这里的2和3包括类型变量和高阶函数,需要更深入的理解。正如我所说的,这个问题完全不清楚。我的回答是基于问题中实际提到的。如果OP想添加更多的上下文,我很乐意相应地编辑我的答案。