{"id":"https://openalex.org/W138078219","doi":null,"title":"Functional Polytypic Programming","display_name":"Functional Polytypic Programming","publication_year":2000,"publication_date":"2000-01-01","ids":{"openalex":"https://openalex.org/W138078219","mag":"138078219"},"language":"en","primary_location":{"id":"pmh:oai:publications.lib.chalmers.se:804","doi":null,"is_oa":true,"landing_page_url":"http://publications.lib.chalmers.se/publication/804-functional-polytypic-programming","pdf_url":"http://publications.lib.chalmers.se/publication/804-functional-polytypic-programming","source":{"id":"https://openalex.org/S4377196470","display_name":"Chalmers Publication Library (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text.Thesis.Doctoral"},"volume":null,"type":"dissertation","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://publications.lib.chalmers.se/publication/804-functional-polytypic-programming","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5032737176","display_name":"Patrik Jansson","orcid":"https://orcid.org/0000-0003-3078-1437","observed_orcids":["https://orcid.org/0000-0003-3078-1437"]},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Patrik Jansson","raw_affiliation_strings":[],"raw_orcid":"https://orcid.org/0000-0003-3078-1437","affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":["https://openalex.org/A5032737176"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":27,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"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":1.0,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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":1.0,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T11975","display_name":"Evolutionary Algorithms and Applications","score":0.0,"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.0,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/polytypic-programming","display_name":"polytypic programming","score":0.9959999918937683},{"id":"https://openalex.org/keywords/functional-programming","display_name":"functional programming","score":0.7390000224113464},{"id":"https://openalex.org/keywords/polyps","display_name":"polyps","score":0.906000018119812},{"id":"https://openalex.org/keywords/catamorphisms","display_name":"catamorphisms","score":0.9879999756813049},{"id":"https://openalex.org/keywords/traversal","display_name":"traversal","score":0.9610000252723694},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.32899999618530273},{"id":"https://openalex.org/keywords/rewriting","display_name":"rewriting","score":0.41100001335144043},{"id":"https://openalex.org/keywords/data-conversion","display_name":"data conversion","score":0.9959999918937683},{"id":"https://openalex.org/keywords/equality-test","display_name":"equality test","score":0.6190000176429749},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"pattern matching","score":0.6980000138282776}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.8342249393463135},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.7968929409980774},{"id":"https://openalex.org/C154690210","wikidata":"https://www.wikidata.org/wiki/Q1668499","display_name":"Rewriting","level":2,"score":0.7694810628890991},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.7649890184402466},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7374005317687988},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7334829568862915},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.5363990068435669},{"id":"https://openalex.org/C2780801425","wikidata":"https://www.wikidata.org/wiki/Q5164392","display_name":"Construct (python library)","level":2,"score":0.5259138345718384},{"id":"https://openalex.org/C96146094","wikidata":"https://www.wikidata.org/wiki/Q609057","display_name":"Unification","level":2,"score":0.5019118785858154},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.4683859646320343},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.4656425714492798},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.45345234870910645},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.424954891204834},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3843444585800171},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.37604230642318726}],"mesh":[],"locations_count":3,"locations":[{"id":"pmh:oai:publications.lib.chalmers.se:804","doi":null,"is_oa":true,"landing_page_url":"http://publications.lib.chalmers.se/publication/804-functional-polytypic-programming","pdf_url":"http://publications.lib.chalmers.se/publication/804-functional-polytypic-programming","source":{"id":"https://openalex.org/S4377196470","display_name":"Chalmers Publication Library (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text.Thesis.Doctoral"},{"id":"pmh:oai:research.chalmers.se:804","doi":null,"is_oa":true,"landing_page_url":"https://research.chalmers.se/en/publication/804","pdf_url":"https://research.chalmers.se/en/publication/804","source":{"id":"https://openalex.org/S4306402469","display_name":"Chalmers Research (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":null},{"id":"mag:138078219","doi":null,"is_oa":false,"landing_page_url":"http://publications.lib.chalmers.se/records/fulltext/804.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":{"id":"pmh:oai:publications.lib.chalmers.se:804","doi":null,"is_oa":true,"landing_page_url":"http://publications.lib.chalmers.se/publication/804-functional-polytypic-programming","pdf_url":"http://publications.lib.chalmers.se/publication/804-functional-polytypic-programming","source":{"id":"https://openalex.org/S4377196470","display_name":"Chalmers Publication Library (Chalmers University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I66862912","host_organization_name":"Chalmers University of Technology","host_organization_lineage":["https://openalex.org/I66862912"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text.Thesis.Doctoral"},"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W138078219.pdf","grobid_xml":"https://content.openalex.org/works/W138078219.grobid-xml"},"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W7095856995","https://openalex.org/W1585967043","https://openalex.org/W2130804875","https://openalex.org/W1544871986","https://openalex.org/W2058137890","https://openalex.org/W2516023812","https://openalex.org/W7098954002","https://openalex.org/W2073905442","https://openalex.org/W7096997223","https://openalex.org/W7099182960"],"abstract_inverted_index":{"Many":[0],"algorithms":[1,35,81],"have":[2],"to":[3,65,149,216],"be":[4],"implemented":[5,257],"over":[6,8],"and":[7,41,44,67,87,107,115,160,188,224,236,241,258,269],"again":[9],"for":[10,29,50,59,78,130,201,220,252,285],"different":[11],"datatypes,":[12],"either":[13],"because":[14,23],"datatypes":[15],"change":[16],"during":[17],"the":[18,24,74,137,144,183,186,245],"development":[19],"of":[20,33,70,91,93,101,111,125,139,167,170,185,211,250,271,290],"programs,":[21],"or":[22],"same":[25],"algorithm":[26],"is":[27,47,198,214,234],"used":[28],"several":[30],"datatypes.":[31,141],"Examples":[32],"such":[34,52],"are":[36,147,192,256,277],"equality":[37],"tests,":[38],"pretty":[39,265],"printers,":[40],"pattern":[42,221],"matchers,":[43],"polytypic":[45,57,71,80,94,103,112,132,165,202,218,253],"programming":[46,58,61,203],"a":[48,83,89,99,120,128,168,189,199,230,248],"paradigm":[49],"expressing":[51],"algorithms.":[53],"This":[54],"dissertation":[55],"introduces":[56],"functional":[60,121,174],"languages,":[62],"shows":[63],"how":[64],"construct":[66,129],"prove":[68],"properties":[69],"algorithms,":[72],"presents":[73,88],"language":[75,122,146,284],"extension":[76],"PolyP":[77,118,190],"implementing":[79],"in":[82,143,279],"type":[84],"safe":[85],"way,":[86],"number":[90,169,249],"applications":[92,97,110],"programming.":[95],"The":[96,194,261,274],"include":[98,264],"library":[100,187],"basic":[102],"building":[104],"blocks,":[105],"PolyLib,":[106],"two":[108],"larger":[109,196],"programming:":[113,175],"rewriting":[114,232],"data":[116,254,286],"conversion.":[117],"extends":[119],"(a":[123,288],"subset":[124],"Haskell)":[126],"with":[127],"defining":[131],"functions":[133,172,213,219,251,276],"by":[134],"induction":[135],"on":[136,204],"structure":[138],"user-defined":[140],"Programs":[142],"extended":[145],"translated":[148],"Haskell.":[150],"PolyLib":[151],"contains":[152],"powerful":[153],"structured":[154,272],"recursion":[155],"operators":[156],"like":[157],"catamorphisms,":[158],"maps":[159],"traversals,":[161],"as":[162,164],"well":[163],"versions":[166],"standard":[171],"from":[173],"sum,":[176],"length,":[177],"zip,":[178],"(==),":[179],"(<=),":[180],"etc.":[181],"Both":[182],"specification":[184],"implementation":[191],"presented.":[193],"first":[195],"application":[197],"framework":[200],"terms.":[205],"We":[206],"show":[207],"that":[208],"an":[209,239,280],"interface":[210],"four":[212],"sufficient":[215],"express":[217],"matching,":[222],"unification":[223],"term":[225,231],"rewriting.":[226],"Using":[227],"this":[228],"framework,":[229],"function":[233],"specified":[235],"transformed":[237],"into":[238],"efficient":[240],"correct":[242],"implementation.":[243],"In":[244],"second":[246],"application,":[247],"conversion":[255,275,287],"proved":[259],"correct.":[260],"conversions":[262],"considered":[263],"printing,":[266],"parsing,":[267],"packing":[268],"unpacking":[270],"data.":[273],"expressed":[278],"embedded":[281],"domain":[282],"specific":[283],"hierarchy":[289],"Haskell's":[291],"constructor":[292],"classes).":[293]},"counts_by_year":[],"updated_date":"2026-11-11T12:16:26.678958","created_date":"2016-06-24T00:00:00"}
