{"id":"https://openalex.org/W3005777145","doi":"https://doi.org/10.22152/programming-journal.org/2020/4/7","title":"Functional Programming in Pattern-Match-Oriented Programming Style","display_name":"Functional Programming in Pattern-Match-Oriented Programming Style","publication_year":2020,"publication_date":"2020-02-14","ids":{"openalex":"https://openalex.org/W3005777145","doi":"https://doi.org/10.22152/programming-journal.org/2020/4/7","mag":"3005777145"},"language":"en","primary_location":{"id":"doi:10.22152/programming-journal.org/2020/4/7","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2020/4/7","pdf_url":null,"source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},"type":"article","indexed_in":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://arxiv.org/pdf/2002.06176","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5067484131","display_name":"Satoshi Egi","orcid":"https://orcid.org/0000-0002-1003-6846"},"institutions":[{"id":"https://openalex.org/I1301041018","display_name":"Rakuten (Japan)","ror":"https://ror.org/0098kke80","country_code":"JP","type":"company","lineage":["https://openalex.org/I1301041018"]}],"countries":["JP"],"is_corresponding":true,"raw_author_name":"Satoshi Egi","raw_affiliation_strings":["Rakuten Institute of Technology, Japan"],"affiliations":[{"raw_affiliation_string":"Rakuten Institute of Technology, Japan","institution_ids":["https://openalex.org/I1301041018"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5040341874","display_name":"Yuichi Nishiwaki","orcid":"https://orcid.org/0000-0002-8944-5924"},"institutions":[{"id":"https://openalex.org/I74801974","display_name":"The University of Tokyo","ror":"https://ror.org/057zh3y96","country_code":"JP","type":"education","lineage":["https://openalex.org/I74801974"]}],"countries":["JP"],"is_corresponding":false,"raw_author_name":"Yuichi Nishiwaki","raw_affiliation_strings":["The University of Tokyo, Japan"],"affiliations":[{"raw_affiliation_string":"The University of Tokyo, Japan","institution_ids":["https://openalex.org/I74801974"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5067484131"],"corresponding_institution_ids":["https://openalex.org/I1301041018"],"apc_list":null,"apc_paid":null,"fwci":0.2743,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":{"value":0.6220786,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":95},"biblio":{"volume":"4","issue":"3","first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10317","display_name":"Advanced Database Systems and Queries","score":0.9972000122070312,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9940000176429749,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6992736458778381},{"id":"https://openalex.org/keywords/programming-style","display_name":"Programming style","score":0.6907985210418701},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.6884416341781616},{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.6792031526565552},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.558008074760437},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.5031871199607849},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.469363272190094},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.46142035722732544},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.4285683035850525},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.41658085584640503},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.34886565804481506},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.19089174270629883}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6992736458778381},{"id":"https://openalex.org/C2776245389","wikidata":"https://www.wikidata.org/wiki/Q962139","display_name":"Programming style","level":2,"score":0.6907985210418701},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.6884416341781616},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.6792031526565552},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.558008074760437},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.5031871199607849},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.469363272190094},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.46142035722732544},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.4285683035850525},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.41658085584640503},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.34886565804481506},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.19089174270629883},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0},{"id":"https://openalex.org/C78458016","wikidata":"https://www.wikidata.org/wiki/Q840400","display_name":"Evolutionary biology","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.22152/programming-journal.org/2020/4/7","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2020/4/7","pdf_url":null,"source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:2002.06176","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2002.06176","pdf_url":"https://arxiv.org/pdf/2002.06176","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"pmh:oai:arXiv.org:2002.06176","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2002.06176","pdf_url":"https://arxiv.org/pdf/2002.06176","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":28,"referenced_works":["https://openalex.org/W1512480360","https://openalex.org/W1521372188","https://openalex.org/W1537877290","https://openalex.org/W1543641760","https://openalex.org/W1556345310","https://openalex.org/W1560159331","https://openalex.org/W1585088833","https://openalex.org/W1593569536","https://openalex.org/W1608714802","https://openalex.org/W2004098856","https://openalex.org/W2012056301","https://openalex.org/W2094945667","https://openalex.org/W2112774031","https://openalex.org/W2114980032","https://openalex.org/W2119454163","https://openalex.org/W2135378214","https://openalex.org/W2151384546","https://openalex.org/W2158107019","https://openalex.org/W2159709550","https://openalex.org/W2169402190","https://openalex.org/W2746557035","https://openalex.org/W2889050876","https://openalex.org/W2891509302","https://openalex.org/W2914943882","https://openalex.org/W2986237450","https://openalex.org/W3100284210","https://openalex.org/W3101427607","https://openalex.org/W4300174830"],"related_works":["https://openalex.org/W76619263","https://openalex.org/W3004782279","https://openalex.org/W2753068224","https://openalex.org/W2138807037","https://openalex.org/W4254270758","https://openalex.org/W1571471466","https://openalex.org/W3169832545","https://openalex.org/W595100119","https://openalex.org/W2060445097","https://openalex.org/W1988194486"],"abstract_inverted_index":{"Throughout":[0],"the":[1,28,32,40,75,89,93,97,100,206,222],"history":[2],"of":[3,35,88,91,99,119,144],"functional":[4,65,224],"programming,":[5],"recursion":[6,59],"has":[7],"emerged":[8],"as":[9,46,61,73,152,192,214,236],"a":[10,23,79,82,86,105,237],"natural":[11],"method":[12,121],"for":[13,39,112,126,132,210],"describing":[14],"loops":[15],"in":[16,64],"programs.":[17],"However,":[18],"there":[19],"does":[20],"often":[21,71],"exist":[22],"substantial":[24],"cognitive":[25],"distance":[26],"between":[27],"recursive":[29],"definition":[30],"and":[31,81,84,142,156,233,243],"simplest":[33],"explanation":[34],"an":[36,180],"algorithm":[37],"even":[38],"basic":[41,208],"list":[42,83,87,211],"processing":[43,212],"functions":[44,209],"such":[45,151,213,235],"map,":[47,215],"concat,":[48,216],"or":[49,217],"unique;":[50],"when":[51],"we":[52,56,62,248],"explain":[53],"these":[54,190],"functions,":[55],"seldom":[57],"use":[58],"explicitly":[60],"do":[63],"programming.":[66],"For":[67],"example,":[68],"map":[69,76],"is":[70,122],"explained":[72],"follows:":[74],"function":[77,80,94],"takes":[78],"returns":[85],"results":[90],"applying":[92],"to":[95,202,253],"all":[96],"elements":[98],"list.":[101],"This":[102],"paper":[103,170],"advocates":[104],"new":[106],"programming":[107,111,173,194,198,225],"paradigm":[108],"called":[109],"pattern-match-oriented":[110,193],"filling":[113],"this":[114,162,169],"gap.":[115],"An":[116],"essential":[117],"ingredient":[118],"our":[120],"utilizing":[123],"pattern":[124,138,149,182],"matching":[125,131,139],"non-free":[127,133],"data":[128,134],"types.":[129],"Pattern":[130],"types":[135],"features":[136],"non-linear":[137],"with":[140,179],"backtracking":[141],"extensibility":[143],"pattern-matching":[145,163],"algorithms.":[146],"Several":[147],"non-standard":[148],"constructs,":[150],"not-patterns,":[153],"loop":[154],"patterns,":[155,158],"sequential":[157],"are":[159],"derived":[160],"from":[161],"facility.":[164],"Based":[165],"on":[166],"that":[167,175,247],"result,":[168],"introduces":[171],"many":[172],"techniques":[174,191,199],"replace":[176],"explicit":[177],"recursions":[178,185],"intuitive":[181],"by":[183],"confining":[184],"inside":[186],"patterns.":[187,196],"We":[188],"classify":[189],"design":[195],"These":[197],"allow":[200],"us":[201],"redefine":[203],"not":[204,250],"only":[205],"most":[207],"unique":[218],"more":[219,229],"elegantly":[220],"than":[221],"traditional":[223],"style,":[226],"but":[227],"also":[228],"practical":[230],"mathematical":[231],"algorithms":[232],"software":[234],"SAT":[238],"solver,":[239],"computer":[240],"algebra":[241],"system,":[242],"database":[244],"query":[245],"language":[246],"had":[249],"been":[251],"able":[252],"implement":[254],"concisely.":[255]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2022,"cited_by_count":1},{"year":2020,"cited_by_count":1}],"updated_date":"2026-03-20T23:20:44.827607","created_date":"2025-10-10T00:00:00"}
