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

Dr.*_*erg 1 f#

假设我有序列{1;2;3;4},我想申请(fun x -> x * 2)第3个元素,屈服{1;2;6;4}.构建这样一个函数的最佳方法是什么?

Stu*_*art 5

这样做的一个简单方法是在seq适当地将流处理为流时:

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