{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T14:24:25Z","timestamp":1775053465655,"version":"3.50.1"},"reference-count":0,"publisher":"Cambridge University Press (CUP)","issue":"4","license":[{"start":{"date-parts":[[1999,7,1]],"date-time":"1999-07-01T00:00:00Z","timestamp":930787200000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1999,7]]},"abstract":"<jats:p>In functional programming, <jats:italic>fold<\/jats:italic> is a standard operator that encapsulates a simple pattern of \nrecursion for processing lists. This article is a tutorial on two key aspects of the fold operator \nfor lists. First of all, we emphasize the use of the <jats:italic>universal property<\/jats:italic> of fold both as a <jats:italic>proof \nprinciple<\/jats:italic> that avoids the need for inductive proofs, and as a <jats:italic>definition principle<\/jats:italic> that guides \nthe transformation of recursive functions into definitions using fold. Secondly, we show that \neven though the pattern of recursion encapsulated by fold is simple, in a language with tuples \nand functions as first-class values the fold operator has greater <jats:italic>expressive power<\/jats:italic> than might \nfirst be expected.<\/jats:p>","DOI":"10.1017\/s0956796899003500","type":"journal-article","created":{"date-parts":[[2002,7,27]],"date-time":"2002-07-27T13:26:15Z","timestamp":1027776375000},"page":"355-372","source":"Crossref","is-referenced-by-count":74,"title":["A tutorial on the universality and expressiveness of fold"],"prefix":"10.1017","volume":"9","author":[{"given":"GRAHAM","family":"HUTTON","sequence":"first","affiliation":[]}],"member":"56","published-online":{"date-parts":[[1999,7,1]]},"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796899003500","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,3,29]],"date-time":"2019-03-29T19:29:33Z","timestamp":1553887773000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796899003500\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1999,7]]},"references-count":0,"journal-issue":{"issue":"4","published-print":{"date-parts":[[1999,7]]}},"alternative-id":["S0956796899003500"],"URL":"https:\/\/doi.org\/10.1017\/s0956796899003500","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1999,7]]}}}