Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Features of Curry
Features of Curry
To get an idea of the multi-paradigm programming language Curry,
here is an (incomplete) list of its features:
Operational entities: functions defined by equations (predicates are
considered as Boolean functions or constraints)
Type system with parametric polymorphism (à la Hindley/Milner)
Operational semantics: Basically, lazy reduction of functional expressions.
However, function calls may contain free (logic) variables. Such function
calls may be suspended (until the variable become instantiated by solving
some predicate) or may be evaluated by non-deterministic instantiation
of the variable, i.e., this operational semantics combines the ideas of
"residuation" and "narrowing". This operational semantics
was firstly described in a
POPL'97 paper
and another detailed description can be found in the
Curry report.
Higher-order functions; function application is delayed if functions
are unknown (i.e., free variables).
Declarative (monadic) I/O
(Equational) constraints, concurrent evaluation of constraints
Encapsulated search to control the exploration of the
search space (based on this feature, several predefined
search strategies like depth-first search, breadth-first search,
best solution search etc. are available)
Interface to constraint solvers and foreign functions
These are the basic features of the kernel language. Look into the
Curry report
if you are interested in more details. Further features will
be added in different extensions of this kernel language.