【发布时间】:2021-01-18 00:12:05
【问题描述】:
有没有其他方法可以在不使用 array.rev 函数且不复制原始数组的情况下在 F# 中反转数组,可能类似于反转列表的方式。
let rev (lst : List<'T>) =
let length = List.length lst
seq { for i in (length-1) .. -1 .. 0 do yield lst.[i] }
|> Seq.toList
【问题讨论】:
-
不幸的是,'more beautiful' 非常基于意见。请说明您要解决的问题
-
只是要求另一种方法来反转数组
-
不复制是指反转原始数组而不是创建反转数组?
-
我会通过调用
List.rev函数来反转一个列表。哈哈。 Array.rev 和 List.rev 都是 O(N),任何其他合理的算法也是如此。见docs.microsoft.com/en-us/dotnet/fsharp/language-reference/…