(it: Handle, kw: Kwargs)
| 267 | // `prod(iterable, *, start=1.0)`. Returns a float; integer inputs lose their int-ness. |
| 268 | #[plugin_fn] |
| 269 | fn prod(it: Handle, kw: Kwargs) -> Result<f64> { |
| 270 | let mut acc = kw.get::<f64>("start")?.unwrap_or(1.0); |
| 271 | let iter = it.iter()?; |
| 272 | while let Some(h) = iter.iter_next()? { acc *= f64::from_handle(h.raw())?; } |
| 273 | Ok(acc) |
| 274 | } |