【问题标题】:How to apply math operations to top elements in list OCaml如何将数学运算应用于列表 OCaml 中的顶级元素
【发布时间】:2016-05-18 20:49:55
【问题描述】:

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

例如,如果我有[1;2;3],我怎样才能得到前两个元素,在这种情况下是 1 和 2,所以我可以对它们进行数学运算?

感觉应该是 h1::h2::t 附近的东西,但不确定

【问题讨论】:

  • 我们很乐意为您提供帮助,但您为什么不尝试一下呢?在顶层测试或尝试 ocaml 非常简单。
  • 你在正确的轨道上。使用pattern-matching 处理空列表和单例列表的情况。

标签: ocaml


【解决方案1】:
let hd2 lst =
  match lst with
  | [] -> []
  | [a] -> [a]
  | a::b::t-> [a; b]

这似乎工作得很好。但也许它可以做得更好。

【讨论】:

    【解决方案2】:

    好的,这是一个想法,如果您想返回列表的头部,您可以执行List.hd list;; 想象list 是您的列表。

    如果你想返回列表的第二个元素,你可以这样做

    List.hd (List.tl list) ;;
    

    例子:

    let list = [1;2;3];;
    
    List.hd list;;
    - : int = 1
    
    List.hd (List.tl list);;
    - : int = 2
    

    当然,这是更好的方法,但这是可行的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-26
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      相关资源
      最近更新 更多