@misc{AntoyHanusLiuTolmach03FLVM ,author={S. Antoy and M. Hanus and J. Liu and A. Tolmach} ,title={Architecture of a Virtual Machine for Functional Logic Computations} ,year={2003} ,month={October} ,note={Preliminary manuscript} ,abstract={ Narrowing is a powerful feature found in some declarative programming languages. Research in the last decade has produced significant results on the theory and foundation of narrowing, but little is published on the use of narrowing in programming. In this paper, I introduce narrowing from a programmer viewpoint; I outline the programming language Curry, which provides narrowing as a first class feature; I show, by means of examples, when and how to use narrowing in Curry programs, and I discuss the impact of narrowing on software engineering activities such as design and maintenance.} }