@Article{AntoyHanus04JFP ,author={S. Antoy and M. Hanus} ,title={Concurrent distinct choices} ,journal = {Journal of Functional Programming} ,publisher = {Cambridge University Press} ,year = {2004} ,volume = {14} ,number = {6} ,pages = {657-668} ,doi={http://dx.doi.org/10.1017/S095679680400509X} ,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.} }