Powered by AppSignal & Oban Pro

Funx.Monoid.Utils

livebooks/monoid/utils.livemd

Funx.Monoid.Utils

Mix.install([
  {:funx,
    git: "https://github.com/JKWA/funx.git",
    branch: "main"
  }
])

Utility functions for working with Monoids.

This module provides functions to combine monoidal values using m_append/3 and m_concat/2.

Function Examples

import Funx.Monoid.Utils

m_append/3

Appends two values within a given monoid.

This function wraps the input values using the provided monoid, applies the append/2 operation, and then unwraps the result.

Parameters

  • monoid – A monoid struct defining how values should be combined.
  • a – The first raw value.
  • b – The second raw value.

Examples

alias Funx.Monoid.Sum
m_append(%Sum{}, 3, 5)

m_concat/2

Concatenates a list of values using the given monoid.

This function wraps each value using the provided monoid, folds the list using the monoid’s identity and append operation, and then unwraps the result.

Parameters

  • monoid – A monoid struct defining how values should be combined.
  • values – A list of raw values.

Examples

alias Funx.Monoid.Sum
m_concat(%Sum{}, [1, 2, 3])