{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,27]],"date-time":"2025-03-27T13:51:48Z","timestamp":1743083508551,"version":"3.40.3"},"publisher-location":"Cham","reference-count":43,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031712937"},{"type":"electronic","value":"9783031712944"}],"license":[{"start":{"date-parts":[[2024,1,1]],"date-time":"2024-01-01T00:00:00Z","timestamp":1704067200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2024,1,1]],"date-time":"2024-01-01T00:00:00Z","timestamp":1704067200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2024]]},"DOI":"10.1007\/978-3-031-71294-4_2","type":"book-chapter","created":{"date-parts":[[2024,9,6]],"date-time":"2024-09-06T14:03:47Z","timestamp":1725631427000},"page":"27-44","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Improving Logic Programs by\u00a0Adding Functions"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4953-8202","authenticated-orcid":false,"given":"Michael","family":"Hanus","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2024,9,7]]},"reference":[{"key":"2_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"16","DOI":"10.1007\/BFb0027000","volume-title":"Algebraic and Logic Programming","author":"S Antoy","year":"1997","unstructured":"Antoy, S.: Optimal non-deterministic functional logic computations. In: Hanus, M., Heering, J., Meinke, K. (eds.) ALP\/HOA -1997. LNCS, vol. 1298, pp. 16\u201330. Springer, Heidelberg (1997). https:\/\/doi.org\/10.1007\/BFb0027000"},{"issue":"4","key":"2_CR2","doi-asserted-by":"publisher","first-page":"776","DOI":"10.1145\/347476.347484","volume":"47","author":"S Antoy","year":"2000","unstructured":"Antoy, S., Echahed, R., Hanus, M.: A needed narrowing strategy. J. ACM 47(4), 776\u2013822 (2000). https:\/\/doi.org\/10.1145\/347476.347484","journal-title":"J. ACM"},{"key":"2_CR3","series-title":"Lecture Notes in Computer Science (Lecture Notes in Artificial Intelligence)","doi-asserted-by":"publisher","first-page":"171","DOI":"10.1007\/10720084_12","volume-title":"Frontiers of Combining Systems","author":"S Antoy","year":"2000","unstructured":"Antoy, S., Hanus, M.: Compiling multi-paradigm declarative programs into Prolog. In: Kirchner, H., Ringeissen, C. (eds.) FroCoS 2000. LNCS (LNAI), vol. 1794, pp. 171\u2013185. Springer, Heidelberg (2000). https:\/\/doi.org\/10.1007\/10720084_12"},{"key":"2_CR4","doi-asserted-by":"publisher","unstructured":"Antoy, S., Hanus, M.: Set functions for functional logic programming. In: Proceedings of the 11th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP 2009), pp. 73\u201382. ACM Press (2009). https:\/\/doi.org\/10.1145\/1599410.1599420","DOI":"10.1145\/1599410.1599420"},{"issue":"4","key":"2_CR5","doi-asserted-by":"publisher","first-page":"74","DOI":"10.1145\/1721654.1721675","volume":"53","author":"S Antoy","year":"2010","unstructured":"Antoy, S., Hanus, M.: Functional logic programming. Commun. ACM 53(4), 74\u201385 (2010). https:\/\/doi.org\/10.1145\/1721654.1721675","journal-title":"Commun. ACM"},{"key":"2_CR6","doi-asserted-by":"crossref","unstructured":"Baader, F., Nipkow, T.: Term Rewriting and All That. Cambridge University Press (1998)","DOI":"10.1017\/CBO9781139172752"},{"key":"2_CR7","doi-asserted-by":"publisher","unstructured":"Barbosa, J., Florido, M., Santos\u00a0Costa, V.: Data type inference for logic programming. In: De Angelis, E., Vanhoof, W. (eds.) LOPSTR 2021. LNCS, vol. 13290, pp. 16\u201337. Springer, Cham (2021). https:\/\/doi.org\/10.1007\/978-3-030-98869-2_2","DOI":"10.1007\/978-3-030-98869-2_2"},{"key":"2_CR8","unstructured":"Barbuti, R., Bellia, M., Levi, G., Martelli, M.: On the integration of logic programming and functional programming. In: Proceedings IEEE International Symposium on Logic Programming, Atlantic City, pp. 160\u2013166 (1984)"},{"key":"2_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/978-3-642-22531-4_1","volume-title":"Functional and Constraint Logic Programming","author":"B Bra\u00dfel","year":"2011","unstructured":"Bra\u00dfel, B., Hanus, M., Peem\u00f6ller, B., Reck, F.: KiCS2: a new compiler from curry to Haskell. In: Kuchen, H. (ed.) WFLP 2011. LNCS, vol. 6816, pp. 1\u201318. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-22531-4_1"},{"key":"2_CR10","doi-asserted-by":"publisher","first-page":"135","DOI":"10.1016\/0743-1066(89)90033-2","volume":"6","author":"M Bruynooghe","year":"1989","unstructured":"Bruynooghe, M., De Schreye, D., Krekels, B.: Compiling control. J. Log. Program. 6, 135\u2013162 (1989). https:\/\/doi.org\/10.1016\/0743-1066(89)90033-2","journal-title":"J. Log. Program."},{"key":"2_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"255","DOI":"10.1007\/3-540-45619-8_18","volume-title":"Logic Programming","author":"F Bry","year":"2002","unstructured":"Bry, F., Schaffert, S.: Towards a declarative query and transformation language for XML and semistructured data: simulation unification. In: Stuckey, P.J. (ed.) ICLP 2002. LNCS, vol. 2401, pp. 255\u2013270. Springer, Heidelberg (2002). https:\/\/doi.org\/10.1007\/3-540-45619-8_18"},{"key":"2_CR12","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"146","DOI":"10.1007\/11737414_11","volume-title":"Functional and Logic Programming","author":"A Casas","year":"2006","unstructured":"Casas, A., Cabeza, D., Hermenegildo, M.V.: A syntactic approach to combining functional notation, lazy evaluation, and higher-order in LP systems. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945, pp. 146\u2013162. Springer, Heidelberg (2006). https:\/\/doi.org\/10.1007\/11737414_11"},{"key":"2_CR13","doi-asserted-by":"publisher","unstructured":"Giesl, J., Raffelsieper, M., Schneider-Kamp, P., Swiderski, S., Thiemann, R.: Automatic termination proofs for Haskell by term rewriting. ACM Trans. Programm. Lang. Syst. 33(2) (2011). Article 7. https:\/\/doi.org\/10.1145\/1890028.1890030","DOI":"10.1145\/1890028.1890030"},{"key":"2_CR14","doi-asserted-by":"publisher","first-page":"47","DOI":"10.1016\/S0743-1066(98)10029-8","volume":"40","author":"J Gonz\u00e1lez-Moreno","year":"1999","unstructured":"Gonz\u00e1lez-Moreno, J., Hortal\u00e1-Gonz\u00e1lez, M., L\u00f3pez-Fraguas, F., Rodr\u00edguez-Artalejo, M.: An approach to declarative programming based on a rewriting logic. J. Log. Program. 40, 47\u201387 (1999). https:\/\/doi.org\/10.1016\/S0743-1066(98)10029-8","journal-title":"J. Log. Program."},{"issue":"3","key":"2_CR15","doi-asserted-by":"publisher","first-page":"161","DOI":"10.1016\/0743-1066(94)00105-F","volume":"24","author":"M Hanus","year":"1995","unstructured":"Hanus, M.: Analysis of residuating logic programs. J. Log. Program. 24(3), 161\u2013199 (1995). https:\/\/doi.org\/10.1016\/0743-1066(94)00105-F","journal-title":"J. Log. Program."},{"key":"2_CR16","doi-asserted-by":"publisher","unstructured":"Hanus, M.: Declarative processing of semistructured web data. In: Technical Communications of the 27th International Conference on Logic Programming, vol.\u00a011, pp. 198\u2013208. Leibniz International Proceedings in Informatics (LIPIcs) (2011). https:\/\/doi.org\/10.4230\/LIPIcs.ICLP.2011.198","DOI":"10.4230\/LIPIcs.ICLP.2011.198"},{"key":"2_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"123","DOI":"10.1007\/978-3-642-37651-1_6","volume-title":"Programming Logics","author":"M Hanus","year":"2013","unstructured":"Hanus, M.: Functional logic programming: from theory to Curry. In: Voronkov, A., Weidenbach, C. (eds.) Programming Logics. LNCS, vol. 7797, pp. 123\u2013168. Springer, Heidelberg (2013). https:\/\/doi.org\/10.1007\/978-3-642-37651-1_6"},{"key":"2_CR18","doi-asserted-by":"publisher","unstructured":"Hanus, M.: Verifying fail-free declarative programs. In: Proceedings of the 20th International Symposium on Principles and Practice of Declarative Programming (PPDP 2018), pp. 12:1\u201312:13. ACM Press (2018). https:\/\/doi.org\/10.1145\/3236950.3236957","DOI":"10.1145\/3236950.3236957"},{"issue":"4","key":"2_CR19","doi-asserted-by":"publisher","first-page":"538","DOI":"10.1017\/S1471068422000187","volume":"22","author":"M Hanus","year":"2022","unstructured":"Hanus, M.: From logic to functional logic programs. Theory Pract. Logic Program. 22(4), 538\u2013554 (2022). https:\/\/doi.org\/10.1017\/S1471068422000187","journal-title":"Theory Pract. Logic Program."},{"key":"2_CR20","doi-asserted-by":"publisher","unstructured":"Hanus, M.: Inferring non-failure conditions for declarative programs. In: Gibbons, J., Miller, D. (eds.) FLOPS 2024. LNCS, vol. 14659, pp. 167\u2013187. Springer, Singapore (2024). https:\/\/doi.org\/10.1007\/978-981-97-2300-3_10","DOI":"10.1007\/978-981-97-2300-3_10"},{"key":"2_CR21","doi-asserted-by":"publisher","unstructured":"Hanus, M., Skrlac, F.: A modular and generic analysis server system for functional logic programs. In: Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation (PEPM 2014), pp. 181\u2013188. ACM Press (2014). https:\/\/doi.org\/10.1145\/2543728.2543744","DOI":"10.1145\/2543728.2543744"},{"key":"2_CR22","unstructured":"Hanus, M. (ed.): Curry: an integrated functional logic language (vers. 0.9.0) (2016). http:\/\/www.curry-lang.org"},{"issue":"1\u20132","key":"2_CR23","doi-asserted-by":"publisher","first-page":"219","DOI":"10.1017\/S1471068411000457","volume":"12","author":"M Hermenegildo","year":"2012","unstructured":"Hermenegildo, M., et al.: An overview of Ciao and its design philosophy. Theory Pract. Logic Program. 12(1\u20132), 219\u2013252 (2012). https:\/\/doi.org\/10.1017\/S1471068411000457","journal-title":"Theory Pract. Logic Program."},{"key":"2_CR24","unstructured":"Huet, G., L\u00e9vy, J.J.: Computations in orthogonal rewriting systems. In: Lassez, J.L., Plotkin, G. (eds.) Computational Logic: Essays in Honor of Alan Robinson, pp. 395\u2013443. MIT Press (1991)"},{"key":"2_CR25","unstructured":"Hughes, J.: Why functional programming matters. In: Turner, D. (ed.) Research Topics in Functional Programming, pp. 17\u201342. Addison Wesley (1990)"},{"key":"2_CR26","doi-asserted-by":"publisher","unstructured":"Jim\u00e9nez-Martin, J., Marino-Carballo, J., Moreno-Navarro, J.: Efficient compilation of lazy narrowing into Prolog. In: Lau, K.K., Clement, T.P. (eds.) LOPSTR 1992, pp. 253\u2013270. Springer, London (1992). https:\/\/doi.org\/10.1007\/978-1-4471-3560-9_18","DOI":"10.1007\/978-1-4471-3560-9_18"},{"issue":"7","key":"2_CR27","doi-asserted-by":"publisher","first-page":"424","DOI":"10.1145\/359131.359136","volume":"22","author":"R Kowalski","year":"1979","unstructured":"Kowalski, R.: Algorithm = logic + control. Commun. ACM 22(7), 424\u2013436 (1979). https:\/\/doi.org\/10.1145\/359131.359136","journal-title":"Commun. ACM"},{"key":"2_CR28","doi-asserted-by":"publisher","unstructured":"Lee, C., Jones, N., Ben-Amram, A.: The size-change principle for program termination. In: ACM Symposium on Principles of Programming Languages (POPL 2001), pp. 81\u201392 (2001). https:\/\/doi.org\/10.1145\/373243.360210","DOI":"10.1145\/373243.360210"},{"key":"2_CR29","doi-asserted-by":"publisher","unstructured":"Lloyd, J.: Foundations of Logic Programming. 2nd edn. Springer, Heidelberg (1987). https:\/\/doi.org\/10.1007\/978-3-642-83189-8","DOI":"10.1007\/978-3-642-83189-8"},{"key":"2_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"184","DOI":"10.1007\/3-540-57186-8_79","volume-title":"Progamming Language Implementation and Logic Programming","author":"R Loogen","year":"1993","unstructured":"Loogen, R., Fraguas, F.L., Artalejo, M.R.: A demand driven computation strategy for lazy narrowing. In: Bruynooghe, M., Penjam, J. (eds.) PLILP 1993. LNCS, vol. 714, pp. 184\u2013200. Springer, Heidelberg (1993). https:\/\/doi.org\/10.1007\/3-540-57186-8_79"},{"key":"2_CR31","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"244","DOI":"10.1007\/3-540-48685-2_19","volume-title":"Rewriting Techniques and Applications","author":"FJ L\u00f3pez Fraguas","year":"1999","unstructured":"L\u00f3pez Fraguas, F.J., S\u00e1nchez Hern\u00e1ndez, J.: TOY: a multiparadigm declarative system. In: Narendran, P., Rusinowitch, M. (eds.) RTA 1999. LNCS, vol. 1631, pp. 244\u2013247. Springer, Heidelberg (1999). https:\/\/doi.org\/10.1007\/3-540-48685-2_19"},{"key":"2_CR32","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"15","DOI":"10.1007\/3-540-54444-5_84","volume-title":"Programming Language Implementation and Logic Programming","author":"L Naish","year":"1991","unstructured":"Naish, L.: Adding equations to NU-Prolog. In: Maluszy\u0144ski, J., Wirsing, M. (eds.) PLILP 1991. LNCS, vol. 528, pp. 15\u201326. Springer, Heidelberg (1991). https:\/\/doi.org\/10.1007\/3-540-54444-5_84"},{"key":"2_CR33","doi-asserted-by":"publisher","unstructured":"Narain, S.: A technique for doing lazy evaluation in logic. J. Logic Programm. 3, 259\u2013276 (1986). https:\/\/doi.org\/10.1016\/0743-1066(86)90016-6","DOI":"10.1016\/0743-1066(86)90016-6"},{"key":"2_CR34","doi-asserted-by":"publisher","unstructured":"Partain, W.: The nofib benchmark suite of Haskell programs. In: Launchbury, J., Sansom, P. (eds.) Proceedings of the 1992 Glasgow Workshop on Functional Programming, pp. 195\u2013202. Springer, London (1992). https:\/\/doi.org\/10.1007\/978-1-4471-3215-8_17","DOI":"10.1007\/978-1-4471-3215-8_17"},{"key":"2_CR35","unstructured":"Peyton\u00a0Jones, S. (ed.): Haskell 98 Language and Libraries\u2014The Revised Report. Cambridge University Press (2003)"},{"key":"2_CR36","unstructured":"Reddy, U.: Transformation of logic programs into functional programs. In: Proceedings IEEE International Symposium on Logic Programming, Atlantic City, pp. 187\u2013196 (1984)"},{"key":"2_CR37","unstructured":"Reddy, U.: Narrowing as the operational semantics of functional languages. In: Proceedings IEEE International Symposium on Logic Programming, Boston, pp. 138\u2013151 (1985)"},{"key":"2_CR38","doi-asserted-by":"publisher","first-page":"227","DOI":"10.1016\/0304-3975(84)90119-1","volume":"34","author":"T Sato","year":"1984","unstructured":"Sato, T., Tamaki, H.: Enumeration of success patterns in logic programs. Theoret. Comput. Sci. 34, 227\u2013240 (1984). https:\/\/doi.org\/10.1016\/0304-3975(84)90119-1","journal-title":"Theoret. Comput. Sci."},{"key":"2_CR39","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"693","DOI":"10.1007\/978-3-540-89982-2_59","volume-title":"Logic Programming","author":"T Schrijvers","year":"2008","unstructured":"Schrijvers, T., Santos Costa, V., Wielemaker, J., Demoen, B.: Towards Typed Prolog. In: Garcia de la Banda, M., Pontelli, E. (eds.) ICLP 2008. LNCS, vol. 5366, pp. 693\u2013697. Springer, Heidelberg (2008). https:\/\/doi.org\/10.1007\/978-3-540-89982-2_59"},{"issue":"4","key":"2_CR40","doi-asserted-by":"publisher","first-page":"622","DOI":"10.1145\/321850.321859","volume":"21","author":"J Slagle","year":"1974","unstructured":"Slagle, J.: Automated theorem-proving for theories with simplifiers, commutativity, and associativity. J. ACM 21(4), 622\u2013642 (1974). https:\/\/doi.org\/10.1145\/321850.321859","journal-title":"J. ACM"},{"key":"2_CR41","volume-title":"The Art of Prolog","author":"L Sterling","year":"1994","unstructured":"Sterling, L., Shapiro, E.: The Art of Prolog, 2nd edn. MIT Press, Cambridge, Massachusetts (1994)","edition":"2"},{"key":"2_CR42","doi-asserted-by":"publisher","unstructured":"Van\u00a0Roy, P., Haridi, S.: Ideas for the future of Prolog inspired by Oz. CoRR abs\/2302.00558 (2023). https:\/\/doi.org\/10.48550\/ARXIV.2302.00558","DOI":"10.48550\/ARXIV.2302.00558"},{"issue":"3","key":"2_CR43","doi-asserted-by":"publisher","first-page":"240","DOI":"10.1145\/262009.262011","volume":"29","author":"P Wadler","year":"1997","unstructured":"Wadler, P.: How to declare an imperative. ACM Comput. Surv. 29(3), 240\u2013263 (1997). https:\/\/doi.org\/10.1145\/262009.262011","journal-title":"ACM Comput. Surv."}],"container-title":["Lecture Notes in Computer Science","Logic-Based Program Synthesis and Transformation"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-71294-4_2","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,9,6]],"date-time":"2024-09-06T14:04:01Z","timestamp":1725631441000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-71294-4_2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024]]},"ISBN":["9783031712937","9783031712944"],"references-count":43,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-71294-4_2","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2024]]},"assertion":[{"value":"7 September 2024","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"LOPSTR","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Logic-Based Program Synthesis and Transformation","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Milan","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Italy","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2024","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"9 September 2024","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"10 September 2024","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"34","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"lopstr2024","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/www.fm24.polimi.it\/?page_id=63#lopstrppdp2024","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}