From f68070478362a883a38c5d1637e3dd2da6c80d5a Mon Sep 17 00:00:00 2001 From: lrosa007 Date: Wed, 4 Nov 2020 15:50:55 -0500 Subject: feat(float): add sum function --- src/gleam/float.gleam | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src') diff --git a/src/gleam/float.gleam b/src/gleam/float.gleam index 24f0330..3d611b5 100644 --- a/src/gleam/float.gleam +++ b/src/gleam/float.gleam @@ -171,3 +171,22 @@ pub fn square_root(number: Float) -> Result(Float, Nil) { pub fn negate(x: Float) -> Float { -1. *. x } + +/// Sums a list of Floats. +/// +/// ## Example +/// +/// > sum([1.0, 2.2, 3.3]) +/// 6.5 +/// +pub fn sum(numbers: List(Float)) -> Float { + numbers + |> do_sum(0.0) +} + +fn do_sum(numbers: List(Float), initial: Float) -> Float { + case numbers { + [] -> initial + [x, ..rest] -> do_sum(rest, x +. initial) + } +} -- cgit v1.2.3