@INPROCEEDINGS{HanusPrehofer96RTA, author = "Hanus, M. and Prehofer, C.", title = "Higher-Order Narrowing with Definitional Trees", year = "1996", pages = "138-152", publisher = "Springer LNCS 1103", booktitle = "Proc.\ Seventh International Conference on Rewriting Techniques and Applications (RTA'96)", abstract = { Functional logic languages with a sound and complete operational semantics are mainly based on narrowing. Due to the huge search space of simple narrowing, steadily improved narrowing strategies have been developed in the past. Needed narrowing is currently the best narrowing strategy for first-order functional logic programs due to its optimality properties w.r.t.\ the length of derivations and the number of computed solutions. In this paper, we extend the needed narrowing strategy to higher-order functions and $\lambda$-terms as data structures. By the use of definitional trees, our strategy computes only incomparable solutions. Thus, it is the first calculus for higher-order functional logic programming which provides for such an optimality result. Since we allow higher-order logical variables denoting $\lambda$-terms, applications go beyond current functional and logic programming languages. } }