Most contemporary pure functional languages provide support for patterns in function definitions. Examples of common patterns are the identifier, constant, tuple, list algebraic, n+k and as-pattern.
This thesis introduces a new kind of patterns, called application patterns. Such patterns consist of a function applied to arguments: they are of the form (f x1 ... xn). When such a pattern is matched against an actual argument, inverse functions are used to find the binding of variables to values. A theoretical framework is provided that accomodates for defining multiple generalized inverse functions (for returning different sets of arguments) for one function. These inverse functions can be available in the system, derived by the system or defined by the programmer. A notation is introduced so that in a definition’s left hand side identifiers can be used that are bound in the context. It is established that application patterns are universal in the sense that they include constant, tuple, list, algebraic, n+k and as-patterns.
This thesis describes an algoritm that translates functional program code with application patterns to program code without application patterns that can be run on an interpreter. It also provides a proof-of-concept implementation of this algoritm in a functional language.
Book year: 2005
Book pages: 147
Book language: en
File size: 747.97 KB
File type: pdf
Published: 20 June 2022 - 15:00