Function array: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
No edit summary
m (Text replacement - "first-class function" to "first-class function")
 
Line 3: Line 3:
In dzaima/APL and Nial function arrays are constructed by the vector form of [[array notation]], allowing only rank-1 function arrays. In Dyalog APL they can be produced by taking a member of an array of [[namespace]]s that all contain that member, each with its own function value. <syntaxhighlight lang=apl inline>fnarray</syntaxhighlight> in the [[dfns workspace]] wraps this functionality in an operator.<ref>[[Dfns workspace]]. [https://dfns.dyalog.com/n_fnarray.htm <syntaxhighlight lang=apl inline>fnarray</syntaxhighlight>] ― Array of functions.</ref>
In dzaima/APL and Nial function arrays are constructed by the vector form of [[array notation]], allowing only rank-1 function arrays. In Dyalog APL they can be produced by taking a member of an array of [[namespace]]s that all contain that member, each with its own function value. <syntaxhighlight lang=apl inline>fnarray</syntaxhighlight> in the [[dfns workspace]] wraps this functionality in an operator.<ref>[[Dfns workspace]]. [https://dfns.dyalog.com/n_fnarray.htm <syntaxhighlight lang=apl inline>fnarray</syntaxhighlight>] ― Array of functions.</ref>


The [[wikipedia:FP (programming language)|FP]] language features a "function composition" construction that applies like a function array. In the [[I]] language, which has first-class functions, lists may be applied to arguments, and apply each element independently, so that a list of functions also behaves like a function array.
The [[wikipedia:FP (programming language)|FP]] language features a "function composition" construction that applies like a function array. In the [[I]] language, which has [[first-class function]]s, lists may be applied to arguments, and apply each element independently, so that a list of functions also behaves like a function array.


== External links ==
== External links ==

Latest revision as of 02:09, 6 September 2024

A function array, or fnarray, is a value that is conceptually an array of functions. It can be applied to arguments, which applies each function independently and gives an array of results. Several languages that don't ordinarily support placing a function in an array have function arrays as a special construct: Dyalog APL, dzaima/APL, and Nial, which uses the name "atlas".

In dzaima/APL and Nial function arrays are constructed by the vector form of array notation, allowing only rank-1 function arrays. In Dyalog APL they can be produced by taking a member of an array of namespaces that all contain that member, each with its own function value. fnarray in the dfns workspace wraps this functionality in an operator.[1]

The FP language features a "function composition" construction that applies like a function array. In the I language, which has first-class functions, lists may be applied to arguments, and apply each element independently, so that a list of functions also behaves like a function array.

External links

References

  1. Dfns workspace. fnarray ― Array of functions.
APL features [edit]
Built-ins Primitives (functions, operators) ∙ Quad name
Array model ShapeRankDepthBoundIndex (Indexing) ∙ AxisRavelRavel orderElementScalarVectorMatrixSimple scalarSimple arrayNested arrayCellMajor cellSubarrayEmpty arrayPrototype
Data types Number (Boolean, Complex number) ∙ Character (String) ∙ BoxNamespaceFunction array
Concepts and paradigms Conformability (Scalar extension, Leading axis agreement) ∙ Scalar function (Pervasion) ∙ Identity elementComplex floorArray ordering (Total) ∙ Tacit programming (Function composition, Close composition) ∙ GlyphLeading axis theoryMajor cell searchFirst-class function
Errors LIMIT ERRORRANK ERRORSYNTAX ERRORDOMAIN ERRORLENGTH ERRORINDEX ERRORVALUE ERROREVOLUTION ERROR