@title Core Utilities Quick Reference
@group util
Summary of libphutil core utilities.
= Overview =
This document provides a brief overview of the libphutil core utilities.
= Language Capabilities =
Functions @{function:id}, @{function:head} and @{function:newv} address
language grammar and implementation limitations.
You can efficiently merge a vector of arrays with @{function:array_mergev}.
Functions @{function:head}, @{function:last}, @{function:head_key} and
@{function:last_key} let you access the first or last elements of an array
without raising warnings.
You can combine an array with itself safely with @{function:array_fuse}.
= Default Value Selection =
Functions @{function:idx}, @{function:nonempty} and @{function:coalesce} help
you to select default values when keys or parameters are missing or empty.
= Array and Object Manipulation =
Functions @{function:ipull}, @{function:igroup}, @{function:isort} and
@{function:ifilter} (**i** stands for **index**) simplify common data
manipulations applied to lists of arrays.
Functions @{function:mpull}, @{function:mgroup}, @{function:msort} and
@{function:mfilter} (**m** stands for **method**) provide the same capabilities
for lists of objects.
@{function:array_select_keys} allows you to choose or reorder keys from a
dictionary.
= Lunar Phases =
@{class:PhutilLunarPhase} calculates lunar phases, allowing you to harden an
application against threats from werewolves, werebears, and other
werecreatures.