swiss v3.1.0 Swiss View Source

Swiss

Swiss is a bundle of extensions to the standard lib. It includes several helper functions for dealing with standard types.

API

The root module has generic helper functions; check each sub-module's docs for each type's API.

Link to this section Summary

Functions

Applies the given apply_fn to the given value if the given predicate_fn returns true.

Applies the given apply_fn to the given value unless the given predicate_fn returns true.

More idiomatic !is_nil/1. Defined as a macro so it can be used in guards.

Wrapper that makes any function usable directly in Kernel.get_in/2.

Applies the given func to value and returns value.

Applies the given func to value and returns its result.

Link to this section Functions

Link to this function

apply_if(val, apply_fn, predicate_fn \\ &is_present/1)

View Source
apply_if(value :: any(), apply_fn :: function(), predicate_fn :: function()) ::
  any()

Applies the given apply_fn to the given value if the given predicate_fn returns true.

By default, predicate_fn is is_present/1.

Examples

iex> Swiss.apply_if(42, &(&1 + 8))
50

iex> Swiss.apply_if(42, &(&1 + 8), &(&1 > 40))
50

iex> Swiss.apply_if(42, &(&1 + 8), &(&1 < 40))
42
Link to this function

apply_unless(val, apply_fn, predicate_fn \\ &is_nil/1)

View Source

Applies the given apply_fn to the given value unless the given predicate_fn returns true.

By default, predicate_fn is is_nil/1.

Examples

iex> Swiss.apply_unless(nil, &(&1 + 8))
nil

iex> Swiss.apply_unless(42, &(&1 + 8))
50

iex> Swiss.apply_unless(42, &(&1 + 8), &(&1 > 40))
42

iex> Swiss.apply_unless(42, &(&1 + 8), &(&1 < 40))
50
Link to this macro

is_present(val)

View Source (macro)

More idiomatic !is_nil/1. Defined as a macro so it can be used in guards.

Examples

iex> Swiss.is_present(nil)
false

iex> Swiss.is_present([])
true

iex> Swiss.is_present(42)
true

Wrapper that makes any function usable directly in Kernel.get_in/2.

Examples

iex> get_in([%{"life" => 42}], [Swiss.nextable(&List.first/1), "life"])
42
Link to this function

tap(value, func)

View Source
tap(value :: any(), func :: function()) :: any()

Applies the given func to value and returns value.

Examples

iex> Swiss.tap(42, &(12 + &1))
42
Link to this function

thru(value, func)

View Source
thru(value :: any(), func :: function()) :: any()

Applies the given func to value and returns its result.

Examples

iex> Swiss.thru(42, &(12 + &1))
54