Differences
This shows you the differences between two versions of the page.
Next revision Both sides next revision | |||
documentation:features [2010-03-26 12:34] mh created |
documentation:features [2010-03-26 14:44] mh Links to documentation:curry_report changed to documentation:report |
||
---|---|---|---|
Line 7: | Line 7: | ||
* Operational entities: functions defined by equations (predicates are considered as Boolean functions or constraints) | * Operational entities: functions defined by equations (predicates are considered as Boolean functions or constraints) | ||
* Type system with parametric polymorphism (a la Hindley/Milner) | * Type system with parametric polymorphism (a 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 [[http://www.informatik.uni-kiel.de/~mh/papers/POPL97.html | POPL'97 paper]] and another detailed description can be found in the [[documentation:curry_report | Curry report]]. | + | * 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 [[http://www.informatik.uni-kiel.de/~mh/papers/POPL97.html | POPL'97 paper]] and another detailed description can be found in the [[report| Curry report]]. |
* Higher-order functions; function application is delayed if functions are unknown (i.e., free variables). | * Higher-order functions; function application is delayed if functions are unknown (i.e., free variables). | ||
* Declarative (monadic) I/O | * Declarative (monadic) I/O | ||
Line 15: | Line 15: | ||
These are the basic features of the kernel language. Look into the | These are the basic features of the kernel language. Look into the | ||
- | [[documentation:curry_report | Curry report ]] | + | [[report| Curry report ]] |
if you are interested in more details. | if you are interested in more details. | ||
Further features might | Further features might | ||
be added in different extensions of this kernel language. | be added in different extensions of this kernel language. | ||