Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 序号n和序号项之间有什么区别?_F# - Fatal编程技术网

F# 序号n和序号项之间有什么区别?

F# 序号n和序号项之间有什么区别?,f#,F#,查看和的MSDN文档,它们似乎做了完全相同的事情。两者都有相同的描述。。。计算集合中的第n个元素 有什么区别?如果没有,为什么两者都有?您可以在此处查看这些函数的源代码: 因此它们是相同的。您可以在此处查看这些函数的源代码: 因此,它们是相同的。不推荐使用nth的原因是Seq.nth和List.nth的类型签名不同,为了避免混淆。在该文档中搜索“n”一词以查找讨论。显然在某个时候也有一个Array.nth函数,但它不再出现在MSDN上的F文档中,所以我无法告诉您它的签名是什么 : 请注意,定义L

查看和的MSDN文档,它们似乎做了完全相同的事情。两者都有相同的描述。。。计算集合中的第n个元素


有什么区别?如果没有,为什么两者都有?

您可以在此处查看这些函数的源代码:


因此它们是相同的。

您可以在此处查看这些函数的源代码:

因此,它们是相同的。

不推荐使用nth的原因是Seq.nth和List.nth的类型签名不同,为了避免混淆。在该文档中搜索“n”一词以查找讨论。显然在某个时候也有一个Array.nth函数,但它不再出现在MSDN上的F文档中,所以我无法告诉您它的签名是什么

:

请注意,定义List.nth的方式是,不能执行someList |>List.nth 5。Seq.nth以正确的顺序获取其参数,因此someSeq |>Seq.nth 5是可能的,但是让这两个函数以不同的顺序获取其参数会导致混淆。为了避免这种混淆,不推荐使用nth,并将其替换为item,它对列表、seq和数组具有相同的签名。是的,someArray |>Array.item 5是可能的,即使您通常只是将其作为someArray来编写。[5]。

不推荐使用nth的原因是Seq.nth和List.nth的类型签名不同,以避免混淆。在该文档中搜索“n”一词以查找讨论。显然在某个时候也有一个Array.nth函数,但它不再出现在MSDN上的F文档中,所以我无法告诉您它的签名是什么

:


请注意,定义List.nth的方式是,不能执行someList |>List.nth 5。Seq.nth以正确的顺序获取其参数,因此someSeq |>Seq.nth 5是可能的,但是让这两个函数以不同的顺序获取其参数会导致混淆。为了避免这种混淆,不推荐使用nth,并将其替换为item,它对列表、seq和数组具有相同的签名。是的,someArray |>Array.item 5是可能的,尽管您通常只是将其写成someArray。[5]。

我认为nth已被弃用。您可以将item与数组、列表等一起使用。我认为nth已不推荐使用。您可以将项与数组、列表等一起使用。函数,而不是方法。回答得很好,谢谢。我接受@rmunn的答案,尽管你的答案是第一位的,因为他解释了背景。希望没问题。函数,而不是方法。回答得很好,谢谢。我接受@rmunn的答案,尽管你的答案是第一位的,因为他解释了背景。希望没问题。非常感谢你的回答和背景。那么我应该使用Seq.item?是的,使用Seq.item而不是Seq.nth。只是要知道,它必须从一开始就计数才能找到项目,所以它是打开的。如果您反复调用它以从seq中获取各种项目,那么您应该首先将其转换为一个数组,该数组具有O1查找功能。谢谢,对于答案和背景,所有这些都非常重要。那么我应该使用Seq.item?是的,使用Seq.item而不是Seq.nth。只是要知道,它必须从一开始就计数才能找到项目,所以它是打开的。如果您反复调用它以从seq中获取各种项目,那么您应该首先将其转换为一个数组,该数组具有O1查找功能。谢谢,这一切都是有意义的
[<CompiledName("Get")>]
let nth index (source : seq<'T>) = item index source
Seq.nth : int -> seq<'T> -> 'T
List.nth : 'T list -> int -> 'T