As a best-selling author, I invite you to explore my books on Amazon . Don't forget to follow me on Medium and show your support. Thank you! Your support means the world!
I remember the first time I needed a function that worked on arrays of different sizes. The obvious way was to write a separate version for each size. For a 3-element vector, write one function. For a 4-element vector, write another. For a 5-element… you get the idea. It felt wrong. Code duplication is the enemy of maintainability, and repeating the same logic ten times just to handle different lengths was a recipe for bugs.
The alternative was using slices. Pass a &[f64] with a runtime length. Inside the function, loop over the slice with a bounds check at every iteration. That works, but the compiler can't know the length at compile time. It can't unroll the loop. It can't eliminate the bounds check.…