Content deleted Content added
m Add reference to survey article |
Add Discussion section with references |
||
Line 126:
===Strategies===
Due to the absence of side effects, a functional logic program can be executed with different strategies. To evaluate expressions, Curry uses a variant of the ''needed narrowing'' strategy which combines [[lazy evaluation]] with non-deterministic search strategies. In contrast to Prolog, which uses backtracking to search for solutions, Curry does not fix a particular search strategy. Hence, there are implementations of Curry, like [http://www-ps.informatik.uni-kiel.de/kics2/ KiCS2], where the user can easily select a search strategy, like [[depth-first search]] (backtracking), [[breadth-first search]], iterative deepening, or parallel search.
==Discussion==
[[John Alan Robinson]] discussed in his invited CL2000 paper<ref>{{cite book |last=Robinson |first=John Alan |title=First International Conference on Computational Logic (CL 2000) |chapter=Computational Logic: Memories of the Past and Challenges for the Future |series=Lecture Notes in Computer Science |year=2000 |doi=10.1007/3-540-44957-4_1 |volume=1861 |pages=1-24 |isbn=978-3-540-67797-0}}</ref> the integration of functional programming with logic programming where he wrote: "It is inexplicable that the two idioms have been kept apart for so long within the computational logic repertory. We need a single programming language in which both kinds of programming are possible and can be used in combination with each other." He surveyed different attempts and concluded that Curry is the "most promising one".
==References==
|