Sha256: bf6b7582ffd1c1afd317ec27a3dc992a3bc48d5439aa7d5eda6bd03638d7abbd

Contents?: true

Size: 891 Bytes

Versions: 327

Compression:

Stored size: 891 Bytes

Contents

defmodule Squares do
  @moduledoc """
  Calculate sum of squares, square of sums, difference between two sums from 1 to a given end number.
  """

  @doc """
  Calculate sum of squares from 1 to a given end number.
  """
  @spec sum_of_squares(pos_integer) :: pos_integer
  def sum_of_squares(number) do
    Enum.reduce(1..number, 0, fn(x, acc) -> acc + (x * x) end)
  end

  @doc """
  Calculate square of sums from 1 to a given end number.
  """
  @spec square_of_sums(pos_integer) :: pos_integer
  def square_of_sums(number) do
    sum_to_number = Enum.reduce(1..number, fn(x, acc) -> x + acc end)
    sum_to_number * sum_to_number
  end

  @doc """
  Calculate difference between sum of squares and square of sums from 1 to a given end number.
  """
  @spec difference(pos_integer) :: pos_integer
  def difference(number) do
    square_of_sums(number) - sum_of_squares(number)
  end

end

Version data entries

327 entries across 327 versions & 1 rubygems

Version Path
trackler-2.2.1.109 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.108 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.107 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.106 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.105 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.104 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.103 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.102 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.101 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.100 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.99 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.98 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.97 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.96 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.95 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.94 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.93 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.92 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.91 tracks/elixir/exercises/difference-of-squares/example.exs
trackler-2.2.1.90 tracks/elixir/exercises/difference-of-squares/example.exs