【发布时间】:2014-07-30 19:40:44
【问题描述】:
所以基本上我有一个列表 [1,2,3,4,...,n] 我想创建一个新列表(元组),然后使用 List.Map 将函数应用于新列表. 新列表的格式为 [(NULL,1),(2,1),(3,2),(4,3),...,(n,n-1)]
但我并没有直接看到解决这个问题的最佳方法是什么。 有什么想法吗?
谢谢
编辑: 有了下面的答案,我最终像这样解决了我的问题
let TotalDistance (points:ResizeArray<TrackPoint>) = List.ofSeq(points) |> Seq.pairwise |> Seq.map(fun (x,y) -> DistanceBetween x.Position y.Position) |> Seq.sum
Trackpoint 是坐标 (C#) 的集合,DistanceBetween 是半正弦公式。
感谢您的帮助!
【问题讨论】:
-
这看起来很简单,或者我误解了这个问题:[1..10] |> List.map (fun n -> (n+1,n) ) 对于第一项,我是不确定,f# 中没有空值
-
是的,这也有效(doh ;))...但是你得到一个
n+1太多了 - 我想你可以尝试使用n-1代替 ;) -
@elios264 这仅适用于您的输入列表是序号的情况,但不能解决一般情况。
标签: list f# functional-programming tuples