# Package com.saxonica.functions.hof

The package `com.saxonica.hof` contains code to support higher-order functions.

See: Description

- Class Summary
  Class | Description
  --- | ---
  AbstractFunctionItem | Abstract superclass (and factory class) for implementations of FunctionItem
  AtomicConstructorFunctionItem | A function item representing a constructor function for an atomic type
  CallableFunctionItem | A function item that wraps a Callable
  CallableWithBoundFocus | A Callable that wraps another Callable and a Dynamic Context, in effect acting as a closure that executes the original callable with a saved context.
  CoercedFunction | A function item obtained by coercing a supplied function; this adds a wrapper to perform dynamic type checking of the arguments in any call, and type checking of the result.
  CurriedFunction | A function obtained by currying another function, that is, the result of calling fn:partial-apply
  DynamicFunctionCallDefinition | This class implements the extension function saxon:call(), which calls a FunctionItem The first argument is the FunctionItem object, the remaining arguments are the parameters to be supplied in the call.
  DynamicFunctionCallDefinition.DynamicFunctionCall |
  FilterFn | This class implements the function fn:filter(), which is a standard function in XQuery 3.0
  FoldLeftFn | This class implements the function fn:fold-left(), which is a standard function in XQuery 1.1
  FoldRightFn | This class implements the function fn:fold-right(), which is a standard function in XQuery 3.0
  ForEachFn | This class implements the function fn:for-each(), which is a standard function in XQuery 3.0 (renamed from fn:map)
  ForEachPairFn | This class implements the function fn:for-each-pair(), which is a standard function in XQuery 3.0 (formerly map-pairs())
  FunctionLiteral | A FunctionLiteral is a wrapper around a FunctionItem; it is an expression, whose value is the function item that it wraps.
  FunctionLookup | This class supports the function-lookup() function in XPath 3.0.
  FunctionSequenceCoercer | An FunctionSequenceCoercer performs function coercion on a sequence of function items
  FunctionSequenceCoercer.Coercer |
  PartialApply | This expression class implements the operation of currying (or performing partial application) of a function.
  SpecificFunctionType | An instance of this class represents a specific function item type, for example function(xs:int) as xs:boolean
  UserFunctionItem | A UserFunctionItem is a function item representing a call on a user-defined function.

## Package com.saxonica.functions.hof Description

The package `com.saxonica.hof` contains code to support higher-order functions.

Higher-order functions are supported in XQuery 1.1 using native language syntax, and they are also available in other environments (including XSLT) using the Saxon extension functions `saxon:function()` and `saxon:call()`.

Michael H. Kay
Saxonica Limited
12 June 2009

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.