【问题标题】:Ocaml functions using List and couples使用 List 和对的 Ocaml 函数
【发布时间】:2016-10-25 15:24:40
【问题描述】:

我有一项任务要完成,但我遇到了麻烦。这是在 ocaml 中,列表是主要焦点。

第一个函数接受一对列表[(a1,b1);(a2,b2)...] 并验证每个“a”都是不同的。

我尝试分两部分进行:

let rec isNotIn x = function
   |[]-> true
   |(a,_)::l -> a <> x && isNotIn a l;;
let isFunction = function
   |[] -> false
   |(a,_)::l -> isNotIn a l;;

我找不到让它工作的方法,isFunction 只检查以下对的第一个元素是否等于它自己的元素。但我需要它来检查列表的每个第一个元素,而不仅仅是下一个。

【问题讨论】:

    标签: list ocaml


    【解决方案1】:

    嗯,你所做的几乎是完美的,只是你忘记了递归调用:

    let rec isFunction = function
       | []  -> true (* if the function is empty it's ok, no ? *)
       | (a, _) :: l -> isNotIn a l && isFunction l;;
    

    实际上,您的第一个函数不仅获取情侣列表,还获取元素 x 并验证 x 不是列表中任何情侣的第一个元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多