It has its own challenges. Consider:
const fn foo(x: &mut i32) { *x += 1; }
(This is not yet stable in Rust, but will be.)
It has its own challenges. Consider:
would you consider this function pure? I don't think many would. Also, it may be pure given Rust's semantics, but it kinda goes against the intuitive, usual way people talk about purity, so that makes it hard.(This is not yet stable in Rust, but will be.)