Horner's rule for polynomial evaluation: Difference between revisions

→‎{{header|Rust}}: keeping it compiling.
(added swift)
(→‎{{header|Rust}}: keeping it compiling.)
Line 1,395:
 
Works with any number type. It uses a reversed left fold to accumulate the result, similar to the Haskell solution.
<lang Rust>// rust 0.912-prenightly
 
std::num::zero;
 
fn horner<T:Num>(cs:&[T], x:T) -> T {
cs.rev_iteriter().rev().fold(std::num::zero::<T>(), |acc, c| (acc*x) + (*c))
}
 
fn main() {
println!("{}", horner([-1919i, 7, -4, 6], 33i));
}</lang>
 
Anonymous user