gpt4 book ai didi

ocaml - 在列表中两两迭代值

转载 作者:行者123 更新时间:2023-12-02 21:35:28 25 4
gpt4 key购买 nike

有没有办法用两个值迭代列表?像这样的东西:

let my_list : int list = [1;2;3;4;5;6;7];;

let iterate_by_two elem1 elem2 =
if elem1 < elem2 then Printf.printf "True"
else Printf.printf "False"
in List.iter iterate_by_two my_list;;

List.iter 仅接受带有一个参数(即元素)的函数。我还应该研究其他功能吗?

最佳答案

您可以使用List.iter2,它使用您的列表及其自己的尾部并行迭代两个列表。

如果列表的长度不同,它会抛出异常,这里就是这种情况,因为尾部显然短了一个元素,但 OCaml 中的异常很容易捕获,因此这不是问题。

try
List.iter2 iterate_by_two my_list (List.tl my_list)
with Invalid_argument _ -> ()

关于ocaml - 在列表中两两迭代值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21500019/

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