F#按元素求和两个序列

A19*_*919 3 f#

我正在寻找一种方法来按F#中的元素求和两个序列.

例如,如果我有这两个序列:

let first = seq [ 183.24; 170.15;174.17]
let second = seq [25.524;24.069;24.5]
Run Code Online (Sandbox Code Playgroud)

我想得到以下结果:

third list = [208.764;194.219;198.67]
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最简单或最好的方法是什么?

Gus*_*Gus 7

你可以使用这个功能zip:

let third = Seq.zip first second |> Seq.map (fun (x, y) -> x + y)
Run Code Online (Sandbox Code Playgroud)

它将创建一个带有元组的新序列,其中第一个元素来自first第二个元素second,然后您可以映射并应用两个元素的添加.

  • `Seq.map2(+)first second`也是一个选项. (3认同)

Rei*_*ica 5

简单的方法 - 使用 Seq.map2

let first = seq  [ 183.24; 170.15;174.17]
let second = seq [25.524;24.069;24.5]
//seq [208.764; 194.219; 198.67]
let third = Seq.map2 (+) first second
Run Code Online (Sandbox Code Playgroud)