{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:59Z","timestamp":1779836759390,"version":"3.53.1"},"reference-count":7,"publisher":"Cambridge University Press (CUP)","license":[{"start":{"date-parts":[[2021,11,25]],"date-time":"2021-11-25T00:00:00Z","timestamp":1637798400000},"content-version":"unspecified","delay-in-days":328,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":["cambridge.org"],"crossmark-restriction":true},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2021]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>Given a string of parentheses, the task is to find the longest consecutive segment that is balanced, in linear time. We find this problem interesting because it involves a combination of techniques: the usual approach for solving segment problems and a theorem for constructing the inverse of a function\u2014through which we derive an instance of shift-reduce parsing.<\/jats:p>","DOI":"10.1017\/s0956796821000253","type":"journal-article","created":{"date-parts":[[2021,11,25]],"date-time":"2021-11-25T01:19:11Z","timestamp":1637803151000},"update-policy":"https:\/\/doi.org\/10.1017\/policypage","source":"Crossref","is-referenced-by-count":0,"title":["Longest segment of balanced parentheses: an exercise in program inversion in a segment problem"],"prefix":"10.1017","volume":"31","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4755-601X","authenticated-orcid":false,"given":"SHIN-CHENG","family":"MU","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"TSUNG-JU","family":"CHIANG","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2021,11,25]]},"reference":[{"key":"S0956796821000253_ref4","unstructured":"Gibbons, J. (1997) Calculating functional programs. In Proceedings of ISRG\/SERG Research Colloquium. Oxford Brookes University."},{"key":"S0956796821000253_ref5","first-page":"87","article-title":"Theory and applications of inverting functions as folds","volume":"51","author":"Mu","year":"2003","journal-title":"Sci. Comput. Program. (Special Issue Math. Program Const.)"},{"key":"S0956796821000253_ref3","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45499-3_27"},{"key":"S0956796821000253_ref7","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(92)90033-8"},{"key":"S0956796821000253_ref2","volume-title":"Algebra of Programming","author":"Bird","year":"1997"},{"key":"S0956796821000253_ref1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-87374-4_1"},{"key":"S0956796821000253_ref6","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44806-3_5"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796821000253","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:36:57Z","timestamp":1779835017000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796821000253\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021]]},"references-count":7,"alternative-id":["S0956796821000253"],"URL":"https:\/\/doi.org\/10.1017\/s0956796821000253","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021]]},"assertion":[{"value":"\u00a9 The Author(s), 2021. Published by Cambridge University Press","name":"copyright","label":"Copyright","group":{"name":"copyright_and_licensing","label":"Copyright and Licensing"}}],"article-number":"e31"}}