如何将数学运算应用于列表OCaml中的顶级元素

如何将数学运算应用于列表OCaml中的顶级元素,ocaml,Ocaml,如何获取列表的前两个元素 例如,如果我有[1;2;3],我如何获得前两个元素,在本例中是1和2,以便对它们应用数学运算 感觉它应该是关于h1::h2::t的,但不确定好的,所以这里有一个想法,如果你想返回列表的标题,你可以做list.hd list想象列表就是您的列表 如果要返回列表的第二个元素,可以执行以下操作 List.hd (List.tl list) ;; 例如: let list = [1;2;3];; List.hd list;; - : int = 1 List.hd (Li

如何获取列表的前两个元素

例如,如果我有
[1;2;3]
,我如何获得前两个元素,在本例中是1和2,以便对它们应用数学运算


感觉它应该是关于
h1::h2::t
的,但不确定

好的,所以这里有一个想法,如果你想返回列表的标题,你可以做
list.hd list想象
列表
就是您的列表

如果要返回列表的第二个元素,可以执行以下操作

List.hd (List.tl list) ;;
例如:

let list = [1;2;3];;

List.hd list;;
- : int = 1

List.hd (List.tl list);;
- : int = 2

当然,这是更好的方法,但这很有效。

好的,这里有一个想法,如果您想返回列表的标题,可以执行
list.hd list想象
列表
就是您的列表

let hd2 lst =
  match lst with
  | [] -> []
  | [a] -> [a]
  | a::b::t-> [a; b]
如果要返回列表的第二个元素,可以执行以下操作

List.hd (List.tl list) ;;
例如:

let list = [1;2;3];;

List.hd list;;
- : int = 1

List.hd (List.tl list);;
- : int = 2
当然,这是更好的方法,但这是有效的

let hd2 lst =
  match lst with
  | [] -> []
  | [a] -> [a]
  | a::b::t-> [a; b]
这似乎很有效。但这或许可以做得更好


这似乎很有效。但也许可以做得更好。

我们很乐意提供帮助,但为什么不试试呢?在顶级或try ocaml上进行测试非常简单。您走在了正确的轨道上。使用和处理空列表和单件列表案例。我们很乐意提供帮助,但您为什么不试试呢?在顶级或try ocaml上进行测试非常简单。您走在了正确的轨道上。使用和处理空列表和单例列表案例。