Loading…

First-class patterns

Pure pattern calculus supports pattern-matching functions in which patterns are first-class citizens that can be passed as parameters, evaluated and returned as results. This new expressive power supports two new forms of polymorphism. Path polymorphism allows recursive functions to traverse arbitra...

Full description

Saved in:
Bibliographic Details
Published in:Journal of functional programming 2009-03, Vol.19 (2), p.191-225
Main Authors: JAY, BARRY, KESNER, DELIA
Format: Article
Language:English
Subjects:
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
cited_by cdi_FETCH-LOGICAL-c424t-fcdf8e3f4892744dec3d9113c5e61594faa05f50923c442ef61d098f586a4a943
cites cdi_FETCH-LOGICAL-c424t-fcdf8e3f4892744dec3d9113c5e61594faa05f50923c442ef61d098f586a4a943
container_end_page 225
container_issue 2
container_start_page 191
container_title Journal of functional programming
container_volume 19
creator JAY, BARRY
KESNER, DELIA
description Pure pattern calculus supports pattern-matching functions in which patterns are first-class citizens that can be passed as parameters, evaluated and returned as results. This new expressive power supports two new forms of polymorphism. Path polymorphism allows recursive functions to traverse arbitrary data structures. Pattern polymorphism allows patterns to be treated as parameters which may be collected from various sources or generated from training data. A general framework for pattern calculi is developed. It supports a proof of confluence that is parameterised by the nature of the matching algorithm, suitable for the pure pattern calculus and all other known pattern calculi.
doi_str_mv 10.1017/S0956796808007144
format article
fullrecord <record><control><sourceid>proquest_hal_p</sourceid><recordid>TN_cdi_hal_primary_oai_HAL_hal_00524750v1</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><cupid>10_1017_S0956796808007144</cupid><sourcerecordid>1775389651</sourcerecordid><originalsourceid>FETCH-LOGICAL-c424t-fcdf8e3f4892744dec3d9113c5e61594faa05f50923c442ef61d098f586a4a943</originalsourceid><addsrcrecordid>eNp1kEFLAzEQhYMoWKs3L97Eg-BhdSaZZJNjKdYKBQ_qOcRsolu23ZpsBf-9W1oUFE8D8773hnmMnSFcI2B58whGqtIoDRqgRKI9NkBSpiiVFPtssJGLjX7IjnKeA4DmUg_Y6aROuSt843I-X7muC2mZj9lBdE0OJ7s5ZM-T26fxtJg93N2PR7PCE6euiL6KOohI2vCSqApeVAZReBkUSkPROZBRguHCE_EQFVZgdJRaOXKGxJBdbXPfXGNXqV649GlbV9vpaGY3OwDJqZTwgT17uWVXqX1fh9zZRZ19aBq3DO06W0EcFRrTgxe_wHm7Tsv-D8tRkCLkvIdwC_nU5pxC_D6PYDeF2j-F9h6x87jFS6qr1_CT_L_rC0q7c8I</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>213464122</pqid></control><display><type>article</type><title>First-class patterns</title><source>Cambridge Journals Online</source><creator>JAY, BARRY ; KESNER, DELIA</creator><creatorcontrib>JAY, BARRY ; KESNER, DELIA</creatorcontrib><description>Pure pattern calculus supports pattern-matching functions in which patterns are first-class citizens that can be passed as parameters, evaluated and returned as results. This new expressive power supports two new forms of polymorphism. Path polymorphism allows recursive functions to traverse arbitrary data structures. Pattern polymorphism allows patterns to be treated as parameters which may be collected from various sources or generated from training data. A general framework for pattern calculi is developed. It supports a proof of confluence that is parameterised by the nature of the matching algorithm, suitable for the pure pattern calculus and all other known pattern calculi.</description><identifier>ISSN: 0956-7968</identifier><identifier>EISSN: 1469-7653</identifier><identifier>DOI: 10.1017/S0956796808007144</identifier><language>eng</language><publisher>Cambridge, UK: Cambridge University Press</publisher><subject>Computer Science ; Programming Languages</subject><ispartof>Journal of functional programming, 2009-03, Vol.19 (2), p.191-225</ispartof><rights>Copyright © Cambridge University Press 2009</rights><rights>Distributed under a Creative Commons Attribution 4.0 International License</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c424t-fcdf8e3f4892744dec3d9113c5e61594faa05f50923c442ef61d098f586a4a943</citedby><cites>FETCH-LOGICAL-c424t-fcdf8e3f4892744dec3d9113c5e61594faa05f50923c442ef61d098f586a4a943</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://www.cambridge.org/core/product/identifier/S0956796808007144/type/journal_article$$EHTML$$P50$$Gcambridge$$H</linktohtml><link.rule.ids>230,314,780,784,885,27924,27925,72960</link.rule.ids><backlink>$$Uhttps://hal.science/hal-00524750$$DView record in HAL$$Hfree_for_read</backlink></links><search><creatorcontrib>JAY, BARRY</creatorcontrib><creatorcontrib>KESNER, DELIA</creatorcontrib><title>First-class patterns</title><title>Journal of functional programming</title><addtitle>J. Funct. Prog</addtitle><description>Pure pattern calculus supports pattern-matching functions in which patterns are first-class citizens that can be passed as parameters, evaluated and returned as results. This new expressive power supports two new forms of polymorphism. Path polymorphism allows recursive functions to traverse arbitrary data structures. Pattern polymorphism allows patterns to be treated as parameters which may be collected from various sources or generated from training data. A general framework for pattern calculi is developed. It supports a proof of confluence that is parameterised by the nature of the matching algorithm, suitable for the pure pattern calculus and all other known pattern calculi.</description><subject>Computer Science</subject><subject>Programming Languages</subject><issn>0956-7968</issn><issn>1469-7653</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2009</creationdate><recordtype>article</recordtype><recordid>eNp1kEFLAzEQhYMoWKs3L97Eg-BhdSaZZJNjKdYKBQ_qOcRsolu23ZpsBf-9W1oUFE8D8773hnmMnSFcI2B58whGqtIoDRqgRKI9NkBSpiiVFPtssJGLjX7IjnKeA4DmUg_Y6aROuSt843I-X7muC2mZj9lBdE0OJ7s5ZM-T26fxtJg93N2PR7PCE6euiL6KOohI2vCSqApeVAZReBkUSkPROZBRguHCE_EQFVZgdJRaOXKGxJBdbXPfXGNXqV649GlbV9vpaGY3OwDJqZTwgT17uWVXqX1fh9zZRZ19aBq3DO06W0EcFRrTgxe_wHm7Tsv-D8tRkCLkvIdwC_nU5pxC_D6PYDeF2j-F9h6x87jFS6qr1_CT_L_rC0q7c8I</recordid><startdate>20090301</startdate><enddate>20090301</enddate><creator>JAY, BARRY</creator><creator>KESNER, DELIA</creator><general>Cambridge University Press</general><general>Cambridge University Press (CUP)</general><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7SC</scope><scope>7XB</scope><scope>8AL</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>8FK</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>GNUQQ</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K7-</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M0N</scope><scope>P5Z</scope><scope>P62</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>Q9U</scope><scope>1XC</scope></search><sort><creationdate>20090301</creationdate><title>First-class patterns</title><author>JAY, BARRY ; KESNER, DELIA</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c424t-fcdf8e3f4892744dec3d9113c5e61594faa05f50923c442ef61d098f586a4a943</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2009</creationdate><topic>Computer Science</topic><topic>Programming Languages</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>JAY, BARRY</creatorcontrib><creatorcontrib>KESNER, DELIA</creatorcontrib><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>Computer and Information Systems Abstracts</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>Computing Database (Alumni Edition)</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>ProQuest Central Student</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>Computer science database</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Computing Database</collection><collection>ProQuest advanced technologies &amp; aerospace journals</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>ProQuest Central Basic</collection><collection>Hyper Article en Ligne (HAL)</collection><jtitle>Journal of functional programming</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>JAY, BARRY</au><au>KESNER, DELIA</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>First-class patterns</atitle><jtitle>Journal of functional programming</jtitle><addtitle>J. Funct. Prog</addtitle><date>2009-03-01</date><risdate>2009</risdate><volume>19</volume><issue>2</issue><spage>191</spage><epage>225</epage><pages>191-225</pages><issn>0956-7968</issn><eissn>1469-7653</eissn><abstract>Pure pattern calculus supports pattern-matching functions in which patterns are first-class citizens that can be passed as parameters, evaluated and returned as results. This new expressive power supports two new forms of polymorphism. Path polymorphism allows recursive functions to traverse arbitrary data structures. Pattern polymorphism allows patterns to be treated as parameters which may be collected from various sources or generated from training data. A general framework for pattern calculi is developed. It supports a proof of confluence that is parameterised by the nature of the matching algorithm, suitable for the pure pattern calculus and all other known pattern calculi.</abstract><cop>Cambridge, UK</cop><pub>Cambridge University Press</pub><doi>10.1017/S0956796808007144</doi><tpages>35</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0956-7968
ispartof Journal of functional programming, 2009-03, Vol.19 (2), p.191-225
issn 0956-7968
1469-7653
language eng
recordid cdi_hal_primary_oai_HAL_hal_00524750v1
source Cambridge Journals Online
subjects Computer Science
Programming Languages
title First-class patterns
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-29T14%3A16%3A53IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_hal_p&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=First-class%20patterns&rft.jtitle=Journal%20of%20functional%20programming&rft.au=JAY,%20BARRY&rft.date=2009-03-01&rft.volume=19&rft.issue=2&rft.spage=191&rft.epage=225&rft.pages=191-225&rft.issn=0956-7968&rft.eissn=1469-7653&rft_id=info:doi/10.1017/S0956796808007144&rft_dat=%3Cproquest_hal_p%3E1775389651%3C/proquest_hal_p%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c424t-fcdf8e3f4892744dec3d9113c5e61594faa05f50923c442ef61d098f586a4a943%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=213464122&rft_id=info:pmid/&rft_cupid=10_1017_S0956796808007144&rfr_iscdi=true