В курсе Google *Comprehensive Rust* есть упражнение: найти длину трёхмерного вектора, а затем нормализовать его. Формула одна:
√(x² + y² + z²). После этого каждую координату делим на полученную длину.На скриншотах хорошо видна разница в стиле:
- Rust:
iter().fold() собирает сумму квадратов, iter_mut() меняет координаты.- C#:
ReadOnlySpan для чтения, Span для изменения и обычный foreach.- C++:
std::vector, цикл по значениям для расчёта и по ссылкам для изменения.Для тех, кто пишет на C#: Rust
fold(0.0, ...) по смыслу близок к LINQ Aggregate(0.0, ...): оба сворачивают последовательность в одно значение через аккумулятор.Чей вариант вам понятнее с первого взгляда?
@csharp_ci


