gpt4 book ai didi

arrays - 检查列表和数组是否相等 F#

转载 作者:行者123 更新时间:2023-12-05 08:25:25 25 4
gpt4 key购买 nike

我正在尝试比较列表和数组,看看它们是否相等。假设我们有一个列表 list = [1;2;3;4] 和一个数组 ar = [|1;2;3;4|]。如果相等,该函数应返回 true,如果不相等,则应返回 false。我是这样做的:

let list = [1;2;3;4]
let ar = [|1;2;3;4|]

let list' = Array.toList ar
(list = list')

所以基本上我所做的就是简单地转换和比较两个列表。我的问题是有没有其他方法可以做到这一点,我的意思是不简单地在列表和数组之间转换并且不完全依赖库函数.

最佳答案

您可以利用列表和数组(以及大多数其他集合)实现 seq<'a> 的事实接口(interface)(.NET 术语中的 IEnumerable<T>),因此您可以将它们传递给 Seq 中的函数没有任何转换的模块。这只是使用一个接口(interface),所以没有开销。

我能想到的最简单的检查两个序列是否相同的函数是forall2 ,它采用两个序列并检查谓词是否对成对的元素成立。在这种情况下,谓词只是相等性测试 (fun a b -> a = b)你可以缩写为(=) :

let list = [1;2;3;4]
let ar = [|1;2;3;4|]

Seq.forall2 (=) list ar

关于arrays - 检查列表和数组是否相等 F#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65801604/

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