{"id":"https://openalex.org/W4252625692","doi":"https://doi.org/10.1145/1411204.1411220","title":"Generic discrimination","display_name":"Generic discrimination","publication_year":2008,"publication_date":"2008-09-20","ids":{"openalex":"https://openalex.org/W4252625692","doi":"https://doi.org/10.1145/1411204.1411220"},"language":"en","primary_location":{"id":"doi:10.1145/1411204.1411220","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1411204.1411220","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 13th ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5045204080","display_name":"Fritz Henglein","orcid":"https://orcid.org/0000-0001-5190-2125"},"institutions":[{"id":"https://openalex.org/I124055696","display_name":"University of Copenhagen","ror":"https://ror.org/035b05819","country_code":"DK","type":"education","lineage":["https://openalex.org/I124055696"]}],"countries":["DK"],"is_corresponding":true,"raw_author_name":"Fritz Henglein","raw_affiliation_strings":["University of Copenhagen, Copenhagen, Denmark"],"affiliations":[{"raw_affiliation_string":"University of Copenhagen, Copenhagen, Denmark","institution_ids":["https://openalex.org/I124055696"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5045204080"],"corresponding_institution_ids":["https://openalex.org/I124055696"],"apc_list":null,"apc_paid":null,"fwci":2.0668,"has_fulltext":false,"cited_by_count":7,"citation_normalized_percentile":{"value":0.88227706,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"91","last_page":"102"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9970999956130981,"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"}},"topics":[{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9970999956130981,"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"}},{"id":"https://openalex.org/T10317","display_name":"Advanced Database Systems and Queries","score":0.9958000183105469,"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/T10126","display_name":"Logic, programming, and type systems","score":0.989300012588501,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/distributive-property","display_name":"Distributive property","score":0.7800641059875488},{"id":"https://openalex.org/keywords/multiset","display_name":"Multiset","score":0.7746196985244751},{"id":"https://openalex.org/keywords/generalization","display_name":"Generalization","score":0.7607316970825195},{"id":"https://openalex.org/keywords/sorting","display_name":"Sorting","score":0.6741851568222046},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6103582382202148},{"id":"https://openalex.org/keywords/combinatory-logic","display_name":"Combinatory logic","score":0.6070283651351929},{"id":"https://openalex.org/keywords/algebraic-number","display_name":"Algebraic number","score":0.5253100991249084},{"id":"https://openalex.org/keywords/discriminator","display_name":"Discriminator","score":0.5225550532341003},{"id":"https://openalex.org/keywords/order","display_name":"Order (exchange)","score":0.4423518180847168},{"id":"https://openalex.org/keywords/algebra-over-a-field","display_name":"Algebra over a field","score":0.40411263704299927},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3507787883281708},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3318209648132324},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3295830488204956},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.32713866233825684},{"id":"https://openalex.org/keywords/discrete-mathematics","display_name":"Discrete mathematics","score":0.2258203625679016},{"id":"https://openalex.org/keywords/pure-mathematics","display_name":"Pure mathematics","score":0.1720026731491089}],"concepts":[{"id":"https://openalex.org/C11821877","wikidata":"https://www.wikidata.org/wiki/Q187959","display_name":"Distributive property","level":2,"score":0.7800641059875488},{"id":"https://openalex.org/C2779623528","wikidata":"https://www.wikidata.org/wiki/Q864377","display_name":"Multiset","level":2,"score":0.7746196985244751},{"id":"https://openalex.org/C177148314","wikidata":"https://www.wikidata.org/wiki/Q170084","display_name":"Generalization","level":2,"score":0.7607316970825195},{"id":"https://openalex.org/C111696304","wikidata":"https://www.wikidata.org/wiki/Q2303697","display_name":"Sorting","level":2,"score":0.6741851568222046},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6103582382202148},{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.6070283651351929},{"id":"https://openalex.org/C9376300","wikidata":"https://www.wikidata.org/wiki/Q168817","display_name":"Algebraic number","level":2,"score":0.5253100991249084},{"id":"https://openalex.org/C2779803651","wikidata":"https://www.wikidata.org/wiki/Q5282088","display_name":"Discriminator","level":3,"score":0.5225550532341003},{"id":"https://openalex.org/C182306322","wikidata":"https://www.wikidata.org/wiki/Q1779371","display_name":"Order (exchange)","level":2,"score":0.4423518180847168},{"id":"https://openalex.org/C136119220","wikidata":"https://www.wikidata.org/wiki/Q1000660","display_name":"Algebra over a field","level":2,"score":0.40411263704299927},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3507787883281708},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3318209648132324},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3295830488204956},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.32713866233825684},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.2258203625679016},{"id":"https://openalex.org/C202444582","wikidata":"https://www.wikidata.org/wiki/Q837863","display_name":"Pure mathematics","level":1,"score":0.1720026731491089},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0},{"id":"https://openalex.org/C94915269","wikidata":"https://www.wikidata.org/wiki/Q1834857","display_name":"Detector","level":2,"score":0.0},{"id":"https://openalex.org/C10138342","wikidata":"https://www.wikidata.org/wiki/Q43015","display_name":"Finance","level":1,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C76155785","wikidata":"https://www.wikidata.org/wiki/Q418","display_name":"Telecommunications","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/1411204.1411220","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1411204.1411220","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 13th ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},{"id":"pmh:oai:pure.atira.dk:openaire_cris_publications/4faac960-e157-11dd-b5fc-000ea68e967b","is_oa":false,"landing_page_url":"https://researchprofiles.ku.dk/da/publications/4faac960-e157-11dd-b5fc-000ea68e967b","pdf_url":null,"source":{"id":"https://openalex.org/S4306401983","display_name":"Research at the University of Copenhagen (University of Copenhagen)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I124055696","host_organization_name":"University of Copenhagen","host_organization_lineage":["https://openalex.org/I124055696"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Henglein , F 2008 , Generic Discrimination : Sorting and Partitioning Unshared Data in Linear Time . in ICFP 08 : Proceedings of the 2008 SIGPLAN International Conference \u00a0on Functional Programming, Victoria, British Columbia, Canada, September 22-24, 2008 . Association for Computing Machinery , pp. 91-102 , ACM SIGPLAN International Conference on Functional Programming , Victoria, B.C. , Canada , 22/09/2008 . https://doi.org/10.1145/1411204.1411220","raw_type":"contributionToPeriodical"}],"best_oa_location":null,"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/10","score":0.7400000095367432,"display_name":"Reduced inequalities"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":22,"referenced_works":["https://openalex.org/W580585436","https://openalex.org/W1521064342","https://openalex.org/W1587590810","https://openalex.org/W1602103078","https://openalex.org/W1984816083","https://openalex.org/W2003399024","https://openalex.org/W2012188345","https://openalex.org/W2012781562","https://openalex.org/W2021028301","https://openalex.org/W2036569105","https://openalex.org/W2044498416","https://openalex.org/W2068361557","https://openalex.org/W2074286662","https://openalex.org/W2080124533","https://openalex.org/W2086323458","https://openalex.org/W2125027776","https://openalex.org/W2141389982","https://openalex.org/W2293095839","https://openalex.org/W2475478067","https://openalex.org/W4240200084","https://openalex.org/W6632995311","https://openalex.org/W6633749512"],"related_works":["https://openalex.org/W2026765907","https://openalex.org/W4307413753","https://openalex.org/W4300455649","https://openalex.org/W2296588302","https://openalex.org/W4328119206","https://openalex.org/W2033245919","https://openalex.org/W1975604118","https://openalex.org/W4252409532","https://openalex.org/W4293202849","https://openalex.org/W4318347833"],"abstract_inverted_index":{"We":[0],"introduce":[1],"the":[2],"notion":[3],"of":[4,9,32,72],"discrimination":[5,19],"as":[6],"a":[7],"generalization":[8],"both":[10,42],"sorting":[11,44],"and":[12,14,45],"partitioning":[13],"show":[15],"that":[16,40],"worst-case":[17],"linear-time":[18],"functions":[20],"(discriminators)":[21],"can":[22,51],"be":[23,52],"defined":[24],"generically,":[25],"by":[26],"(co-)induction":[27],"on":[28],"an":[29],"expressive":[30],"language":[31],"order":[33,59],"denotations.":[34],"The":[35,48],"generic":[36,49],"definition":[37],"yields":[38],"discriminators":[39,73],"generalize":[41],"distributive":[43],"multiset":[46],"discrimination.":[47],"discriminator":[50],"coded":[53],"compactly":[54],"using":[55,62],"list":[56],"comprehensions,":[57],"with":[58],"denotations":[60],"specified":[61],"Generalized":[63],"Algebraic":[64],"Data":[65],"Types":[66],"(GADTs).":[67],"A":[68],"GADT-free":[69],"combinator":[70],"formulation":[71],"is":[74],"also":[75],"given.":[76]},"counts_by_year":[{"year":2013,"cited_by_count":1},{"year":2012,"cited_by_count":1}],"updated_date":"2026-03-16T09:10:04.655348","created_date":"2025-10-10T00:00:00"}
