{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,4,14]],"date-time":"2023-04-14T23:16:47Z","timestamp":1681514207099},"reference-count":26,"publisher":"Cambridge University Press (CUP)","issue":"2","license":[{"start":{"date-parts":[[2016,7,1]],"date-time":"2016-07-01T00:00:00Z","timestamp":1467331200000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2017,3]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>In functional logic programs, rules are applicable independently of textual order, i.e., any rule can potentially be used to evaluate an expression. This is similar to logic languages and contrary to functional languages, e.g., Haskell enforces a strict sequential interpretation of rules. However, in some situations it is convenient to express alternatives by means of compact default rules. Although default rules are often used in functional programs, the non-deterministic nature of functional logic programs does not allow to directly transfer this concept from functional to functional logic languages in a meaningful way. In this paper, we propose a new concept of default rules for Curry that supports a programming style similar to functional programming while preserving the core properties of functional logic programming, i.e., completeness, non-determinism, and logic-oriented use of functions. We discuss the basic concept and propose an implementation which exploits advanced features of functional logic languages.<\/jats:p>","DOI":"10.1017\/s1471068416000168","type":"journal-article","created":{"date-parts":[[2016,7,1]],"date-time":"2016-07-01T10:08:30Z","timestamp":1467367710000},"page":"121-147","source":"Crossref","is-referenced-by-count":5,"title":["Default rules for Curry"],"prefix":"10.1017","volume":"17","author":[{"given":"SERGIO","family":"ANTOY","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"MICHAEL","family":"HANUS","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"56","published-online":{"date-parts":[[2016,7,1]]},"reference":[{"key":"S1471068416000168_ref9","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(96)00041-2"},{"key":"S1471068416000168_ref10","doi-asserted-by":"publisher","DOI":"10.1051\/ita\/197610R100471"},{"key":"S1471068416000168_ref2","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0027000"},{"key":"S1471068416000168_ref6","first-page":"73","volume-title":"Proc. of the 11th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP'09)","author":"Antoy","year":"2009"},{"key":"S1471068416000168_ref5","first-page":"87","volume-title":"Proc. of the 22nd International Conference on Logic Programming (ICLP 2006)","author":"Antoy","year":"2006"},{"key":"S1471068416000168_ref23","volume-title":"Haskell 98 Language and Libraries\u2014The Revised Report","author":"Peyton","year":"2003"},{"key":"S1471068416000168_ref4","first-page":"6","volume-title":"Proceedings of the International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR'05)","author":"Antoy","year":"2005"},{"key":"S1471068416000168_ref21","first-page":"535","volume-title":"In Proc. 11th International Conference on Logic Programming","author":"Moreno-Navarro","year":"1994"},{"key":"S1471068416000168_ref1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0013825"},{"key":"S1471068416000168_ref13","first-page":"49","volume-title":"Proc. of the 15th International Symposium on Principle and Practice of Declarative Programming (PPDP'13)","author":"Christiansen","year":"2013"},{"key":"S1471068416000168_ref7","doi-asserted-by":"publisher","DOI":"10.1145\/1721654.1721675"},{"key":"S1471068416000168_ref19","unstructured":"Hanus M. , Antoy S. , Brassel B. , Engelke M. , H\u00f6ppner K. , Koj J. , Niederau P. , Sadre R. and Steiner F. 2016. PAKCS: The Portland Aachen Kiel Curry System. Available at http:\/\/www.informatik.uni-kiel.de\/~pakcs\/."},{"key":"S1471068416000168_ref15","doi-asserted-by":"publisher","DOI":"10.1016\/S0743-1066(98)10029-8"},{"key":"S1471068416000168_ref25","first-page":"1574","article-title":"Constructive failure in functional-logic programming: From theory to implementation","volume":"12","author":"S\u00e1nchez-Hern\u00e1ndez","year":"2006","journal-title":"Journal of Universal Computer Science"},{"key":"S1471068416000168_ref3","doi-asserted-by":"publisher","DOI":"10.1145\/347476.347484"},{"key":"S1471068416000168_ref20","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068403001728"},{"key":"S1471068416000168_ref16","first-page":"198","volume-title":"Technical Communications of the 27th International Conference on Logic Programming","author":"Hanus","year":"2011"},{"key":"S1471068416000168_ref17","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37651-1_6"},{"key":"S1471068416000168_ref14","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-61411-8"},{"key":"S1471068416000168_ref11","first-page":"6","article-title":"Encapsulating non-determinism in functional logic computations","volume":"2004","author":"Brassel","year":"2004","journal-title":"Journal of Functional and Logic Programming"},{"key":"S1471068416000168_ref18","unstructured":"Hanus M. Ed. 2016. Curry: An integrated functional logic language (vers. 0.9.0). Available at http:\/\/www.curry-language.org."},{"key":"S1471068416000168_ref24","first-page":"138","volume-title":"Proc. IEEE Internat. Symposium on Logic Programming","author":"Reddy","year":"1985"},{"key":"S1471068416000168_ref22","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-08531-9"},{"key":"S1471068416000168_ref12","first-page":"1","volume-title":"Proc. of the 20th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2011)","author":"Brassel","year":"2011"},{"key":"S1471068416000168_ref8","unstructured":"Antoy S. and Hanus M. 2014. Curry without success. In Proc. of the 23rd International Workshop on Functional and (Constraint) Logic Programming (WFLP 2014). CEUR Workshop Proceedings, Aachen, vol. 1335. CEUR-WS.org, 140\u2013154."},{"key":"S1471068416000168_ref26","doi-asserted-by":"publisher","DOI":"10.1145\/321850.321859"}],"container-title":["Theory and Practice of Logic Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S1471068416000168","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,4,18]],"date-time":"2019-04-18T02:08:45Z","timestamp":1555553325000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068416000168\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,7,1]]},"references-count":26,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2017,3]]}},"alternative-id":["S1471068416000168"],"URL":"https:\/\/doi.org\/10.1017\/s1471068416000168","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,7,1]]}}}