Chapter 1
The TOY(FD) System
1.1 What is TOY(FD)?
1.1.1 In Brief Words, TOY(FD) ...
• ... is an implementation of a functional logic language with finite domain (FD)
constraints. This language adds the power of constraint programming over finite
domains to the characteristics of functional logic programming.
• ... increases the expressiveness and power of constraint logic programming
over finite domains (CLP(FD) ) by combining functional and relational notation,
curried expressions, higher order functions, patterns, partial applications, non-
determinism, constraint composition, lazy evaluation, logical variables, types,
domain variables, constraints and constraint propagators.
• ... combines b oth the efficiency and expressiveness of CLP(FD) with new fea-
tures not existing in CLP(FD) that contribute to increase the expressiveness of
constraint declarative languages.
• ...is, to our knowledge, is the first constraint language that provides lazy evalua-
tion.
1.1.2 More....
TOY(FD) is not only a declarative alternative to CLP(FD) but also extends its capa-
bilities with new characteristics unusual or not existing in CLP(FD) such as functional
and curried notation, types, curried and higher order functions (e.g., higher order
constraints), constraint composition, higher order patterns, lazy evaluation and poly-
morphism, among others. As a consequence, TOY(FD) provides better tools, when
compared to a CLP(FD) language, for a productive declarative programming as, im-
plicitly, it enables more expressivity, due to the combination of functional, relational
and curried notation as well as type checking. Moreover, lazy evaluation allows the use
of structures impossible to manage in a CLP(FD) language, such as infinite lists.
1
Comentarios a estos manuales