Home

higherorderover

Higherorderover is a neologism used in discussions of programming language theory to describe a pattern that merges higher-order functions with overloading semantics.

Definition and concept: Higherorderover refers to a construct in which a single higher-order operator or function

Relation to existing ideas: The concept sits at the intersection of higher-order functions, operator overloading, and

Usage and examples: A hypothetical example is a higherorderover combinator H that, given a function f: A

See also: higher-order function, operator overloading, multimethod, type class, ad hoc polymorphism.

Status: The term is not standardized and usage varies across texts.

can
dispatch
to
multiple
concrete
implementations
based
on
the
type,
structure,
or
shape
of
its
function-valued
arguments
or
contained
values.
It
extends
traditional
operator
overloading
by
allowing
dispatch
rules
that
consider
the
function-valued
inputs
themselves,
not
only
the
result
types.
In
practice,
higherorderover
can
be
implemented
with
multimethods,
type
classes,
or
generics,
enabling
context-sensitive
behavior
that
varies
with
the
function
arguments.
ad
hoc
polymorphism.
It
is
related
to
but
distinct
from
standard
operator
overloading
and
to
higher-order
abstract
interpretation
in
static
analysis,
as
it
emphasizes
dispatch
across
higher-order
inputs.
->
B
and
a
value
x:
F[A],
applies
a
context-specific
map
selecting
specialized
implementations
when
F
is
a
list,
an
option,
or
a
promise.
Another
example
is
a
dispatch
mechanism
that
chooses
different
optimization
strategies
depending
on
whether
f
is
curried
or
uncurried.
The
term
is
mostly
used
in
theoretical
discussions
rather
than
as
a
widely
implemented
syntax.