This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Functional Programming

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.


Use only in the MuPAD Notebook Interface. This functionality does not run in MATLAB.

The functions of the fp package are higher order functions and other utilities useful for functional programming. Some other functions useful for functional programming are already contained in the MuPAD® standard library, like map, select and zip.

For a more detailed description of concepts like “higher order function”, “currying” and “fixed points” see for example the textbook “Computability, Complexity and Languages” by M. Davis, R. Sigal, and E. J. Weyuker, Academic Press (1994).

Most of the functions of the fp package take functions as arguments and return other functions. In this context a function may be a functional environment, a procedure, a kernel function or any other object which may be regarded as a function (i.e. applied to arguments). Note that almost all MuPAD objects are functions in this sense.

The rational integer 2/3 for example may be regarded as a constant function returning the value 2/3:


The list [sin, cos, 2/3] may be regarded as a unary function mapping x to [sin(x), cos(x), 2/3]:

[sin, cos, 2/3](x)

The library functions are called in the form fp::fixedpt(f). By this mechanism, naming conflicts with other library functions are avoided. If this is found to be too awkward the methods of the fp package may be exported. After calling use(fp, fixedpt) the function fixedpt is also directly available, i.e. fixedpt(f) may also be called. If a variable with the name fixedpt already exists then use raises an error. The value of the identifier fixedpt must then be deleted in order to be exported. With use(fp) all methods of the fp package are exported.

Was this topic helpful?