gpt4 book ai didi

list - 使用 fold_left 在 OCaml 中搜索元素

转载 作者:行者123 更新时间:2023-12-04 22:23:36 25 4
gpt4 key购买 nike

我想知道如何在 Ocaml 中构建一个函数,该函数使用 List.fold_left 找出列表中是否存在元素。
例子:

exists 3 [1;2;3;4;5] 
=> true

这个函数的类型是: a -> bool -> 'a list -> bool
我的想法是如何做到这一点的:
let exists k l = List.fold_left( fun a x-> a=x) k l

但显然是错误的。有什么建议怎么做吗?

最佳答案

let exists k l =
List.fold_left (fun b x -> b || x = k) false l

对@tonio 回答的两条评论:
  • 使用 || 而不是多余的 if ... then true else ...
  • 使用结构相等 ( = ) 而不是引用相等 ( == ) 来比较值。

  • 此外, existsList module 中可用。内置函数效率更高,因为它不必每次都遍历整个列表。

    关于list - 使用 fold_left 在 OCaml 中搜索元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413930/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com