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...
Saved in:
Published in: | Journal of functional programming 2009-03, Vol.19 (2), p.191-225 |
---|---|
Main Authors: | , |
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 & 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 & aerospace journals</collection><collection>ProQuest Advanced Technologies & 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 |