如何编写一个接受序列的函数,并返回相同的序列,并将映射仅应用于一个元素?

时间:2017-01-13 05:17:47

标签: f#

假设我有序列{1;2;3;4},我想将(fun x -> x * 2)应用于第3个元素,产生{1;2;6;4}。构建这样一个函数的最佳方法是什么?

1 个答案:

答案 0 :(得分:5)

在将seq作为流进行适当处理的同时,这样做的一种简单方法是:

let input = seq {1..4} 
let result = input |> Seq.mapi (fun i x -> match i with
                                           | 2 (* 3rd item *) -> x*2
                                           | _ -> x)