我正在尝试实现一个通用例程来计算两个向量之间欧几里德距离的平方。这是每晚编译的。
#![feature(zero_one)]
#![feature(iter_arith)]
use std::ops::{Add, Sub, Mul};
use std::num::Zero;
pub fn distance2<T>(x: &[T], y: &[T]) -> T
where T: Copy + Add<Output = T> + Mul<Output = T> + Sub<Output = T> + Zero
{
x.iter().zip(y.iter())
.map(|(xi, yi)| { let d = *xi - *yi; d * d })
.sum()
}