Curry (programming language): Difference between revisions

Content deleted Content added
Sergio58 (talk | contribs)
Sergio58 (talk | contribs)
Given cretid to co-authors
Line 92:
Narrowing is useful because it allows a function to be treated as a relation: its value can be computed "in both directions". The Curry examples of the previous section illustrate this.
 
As noted in the previous section, narrowing can be thought of as reduction on a program term graph, and there are often many different ways (''strategies'') to reduce a given term graph. Antoy Sergioet Antoyal. proved in the 1990s that a particular narrowing strategy, ''needed narrowing'', is optimal in the sense of doing the a number of reductions to get to a "normal form" corresponding to a solution that is minimal among sound and complete strategies. Needed narrowing corresponds to a lazy strategy, in contrast to the incomplete [[SLD resolution|SLD-resolution]] strategy of [[Prolog]].
 
==References==