@ARTICLE{AntoyHanus04JFP, author = {Antoy, S. and Hanus, M.}, title = {Concurrent Distinct Choices}, year = {2004}, journal = {Journal of Functional Programming}, number = {6}, pages = {1-12}, volume = {14}, abstract = { An injective finite mapping is an abstraction common to many programs. We describe the design of an injective finite mapping and its implementation in Curry, a functional logic language. Curry supports the concurrent asynchronous execution of distinct portions of a program. This condition prevents passing from one portion to another a structure containing a partially constructed mapping to ensure that a new choice does not violate the injectivity condition. We present some motivating problems and we show fragments of programs that solve these problems using our design and implementation. } }