{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T08:03:13Z","timestamp":1770278593441,"version":"3.49.0"},"reference-count":24,"publisher":"Elsevier BV","issue":"1","license":[{"start":{"date-parts":[[2001,5,1]],"date-time":"2001-05-01T00:00:00Z","timestamp":988675200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2013,7,29]],"date-time":"2013-07-29T00:00:00Z","timestamp":1375056000000},"content-version":"vor","delay-in-days":4472,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/3.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Electronic Notes in Theoretical Computer Science"],"published-print":{"date-parts":[[2001,5]]},"DOI":"10.1016\/s1571-0661(04)80906-x","type":"journal-article","created":{"date-parts":[[2004,9,29]],"date-time":"2004-09-29T16:47:47Z","timestamp":1096476467000},"page":"146-160","source":"Crossref","is-referenced-by-count":15,"title":["When is a function a fold or an unfold?"],"prefix":"10.1016","volume":"44","author":[{"given":"Jeremy","family":"Gibbons","sequence":"first","affiliation":[]},{"given":"Graham","family":"Hutton","sequence":"additional","affiliation":[]},{"given":"Thorsten","family":"Altenkirch","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB1","series-title":"Algebra of Programming","author":"Bird","year":"1997"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB2","doi-asserted-by":"crossref","unstructured":"K. Claessen and J. Hughes. Quickcheck: A lightweight tool for random testing of Haskell programs. In Proc. 5th ACM SIGPLAN International Conference on Functional Programming, September 2000.","DOI":"10.1145\/351240.351266"},{"issue":"2","key":"10.1016\/S1571-0661(04)80906-X_NEWBIB3","doi-asserted-by":"crossref","first-page":"191","DOI":"10.1142\/S0129626495000175","article-title":"Parallel programming with list homomorphisms","volume":"5","author":"Cole","year":"1995","journal-title":"Parallel Processing Letters"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB4","unstructured":"J. Gibbons. Calculating functional programs. In Summer School and Workshop on Algebraic and Coalgebraic Methods in the Mathematics of Program Construction, Oxford, April 2000."},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB5","unstructured":"J. Gibbons and G. Hutton. Proof methods for structured corecursive programs. In Proc. 1st Scottish Functional Programming Workshop, Stirling, Scotland, August 1999."},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB6","doi-asserted-by":"crossref","unstructured":"J. Gibbons and G. Jones. The under-appreciated unfold. In Proc. 3rd ACM SIGPLAN International Conference on Functional Programming, Baltimore, Maryland, September 1998.","DOI":"10.1145\/289423.289455"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB7","unstructured":"M. M. Fokkinga. Law and Order in Algorithmics. PhD thesis, Universiteit Twente, 1992."},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB8","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/S0167-6423(97)00014-2","article-title":"Extracting and implementing list homomorphisms in parallel program development","volume":"33","author":"Gorlatch","year":"1999","journal-title":"Science of Computer Programming"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB9","doi-asserted-by":"crossref","unstructured":"Z. Hu, H. Iwasaki and M. Takeichi. Deriving structural hylomorphisms from recursive definitions. In Proc. 1st ACM SIGPLAN International Conference on Functional Programming, 1996.","DOI":"10.1145\/232627.232637"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB10","doi-asserted-by":"crossref","unstructured":"G. Hutton. Fold and unfold for program semantics. In Proc. 3rd ACM SIGPLAN International Conference on Functional Programming, Baltimore, Maryland, September 1998.","DOI":"10.1145\/289423.289457"},{"issue":"4","key":"10.1016\/S1571-0661(04)80906-X_NEWBIB11","doi-asserted-by":"crossref","first-page":"355","DOI":"10.1017\/S0956796899003500","article-title":"A tutorial on the universality and expressiveness of fold","volume":"9","author":"Hutton","year":"1999","journal-title":"Journal of Functional Programming"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB12","unstructured":"B. Jacobs. Exercises in coalgebraic specification. In Summer School and Workshop on Algebraic and Coalgebraic Methods in the Mathematics of Program Construction, Oxford, April 2000."},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB13","volume":"Volume 11","year":"1998"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB14","first-page":"222","article-title":"A tutorial on (co)algebras and (co)induction","volume":"62","author":"Jacobs","year":"1997","journal-title":"Bulletin of the European Association for Theoretical Computer Science"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB15","volume":"Volume 19","year":"1999"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB16","doi-asserted-by":"crossref","unstructured":"J. Launchbury and T. Sheard. Warm fusion: Deriving build-catas from recursive definitions. In Proc. Conference on Functional Programming Languages and Computer Architecture, ACM Press, 1995.","DOI":"10.1145\/224164.224223"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB17","doi-asserted-by":"crossref","unstructured":"S. Mac Lane. Categories for the Working Mathematician. Number 5 in Graduate Texts in Mathematics. Springer-Verlag, 1971.","DOI":"10.1007\/978-1-4612-9839-7"},{"issue":"2-3","key":"10.1016\/S1571-0661(04)80906-X_NEWBIB18","doi-asserted-by":"crossref","first-page":"255","DOI":"10.1016\/0167-6423(90)90023-7","article-title":"Algebraic data types and program transformation","volume":"14","author":"Malcolm","year":"1990","journal-title":"Science of Computer Programming"},{"issue":"5","key":"10.1016\/S1571-0661(04)80906-X_NEWBIB19","doi-asserted-by":"crossref","first-page":"413","DOI":"10.1007\/BF01211391","article-title":"Paramorphisms","volume":"4","author":"Meertens","year":"1992","journal-title":"Formal Aspects of Computing"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB20","doi-asserted-by":"crossref","unstructured":"E. Meijer, M. Fokkinga, and R. Paterson. Functional programming with bananas, lenses, envelopes and barbed wire. In J. Hughes, editor, Proc. Conference on Functional Programming and Computer Architecture, number 523 in LNCS. Springer-Verlag, 1991.","DOI":"10.1007\/3540543961_7"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB21","doi-asserted-by":"crossref","unstructured":"A. Takano and E. Meijer. Shortcut deforestation in calculational form. In Proc. Conference on Functional Programming Languages and Computer Architecture, ACM Press, 1995.","DOI":"10.1145\/224164.224221"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB22","doi-asserted-by":"crossref","unstructured":"V. Vene and T. Uustalu. Functional programming with apomorphisms (corecursion). Proceedings of the Estonian Academy of Sciences: Physics, Mathematics, 47(3):147\u2013161, 1998.","DOI":"10.3176\/phys.math.1998.3.01"},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB23","unstructured":"V. Vene. Categorical Programming with Inductive and Coinductive Types. PhD thesis, Universitity of Tartu, 2000."},{"key":"10.1016\/S1571-0661(04)80906-X_NEWBIB24","doi-asserted-by":"crossref","first-page":"231","DOI":"10.1016\/0304-3975(90)90147-A","article-title":"Deforestation: Transforming programs to eliminate trees","volume":"73","author":"Wadler","year":"1990","journal-title":"Theoretical Computer Science"}],"container-title":["Electronic Notes in Theoretical Computer Science"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S157106610480906X?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S157106610480906X?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2023,4,29]],"date-time":"2023-04-29T11:40:15Z","timestamp":1682768415000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S157106610480906X"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2001,5]]},"references-count":24,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2001,5]]}},"alternative-id":["S157106610480906X"],"URL":"https:\/\/doi.org\/10.1016\/s1571-0661(04)80906-x","relation":{},"ISSN":["1571-0661"],"issn-type":[{"value":"1571-0661","type":"print"}],"subject":[],"published":{"date-parts":[[2001,5]]}}}