{"id":"https://openalex.org/W1971115995","doi":"https://doi.org/10.1145/2804302.2804310","title":"Functional pearl: getting a quick fix on comonads","display_name":"Functional pearl: getting a quick fix on comonads","publication_year":2015,"publication_date":"2015-08-24","ids":{"openalex":"https://openalex.org/W1971115995","doi":"https://doi.org/10.1145/2804302.2804310","mag":"1971115995"},"language":"en","primary_location":{"id":"doi:10.1145/2804302.2804310","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2804302.2804310","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell","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/A5081185058","display_name":"Kenneth Foner","orcid":null},"institutions":[{"id":"https://openalex.org/I36788626","display_name":"California University of Pennsylvania","ror":"https://ror.org/01spssf70","country_code":"US","type":"education","lineage":["https://openalex.org/I36788626"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Kenneth Foner","raw_affiliation_strings":["University of Pennsylvania, USA"],"affiliations":[{"raw_affiliation_string":"University of Pennsylvania, USA","institution_ids":["https://openalex.org/I36788626"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5081185058"],"corresponding_institution_ids":["https://openalex.org/I36788626"],"apc_list":null,"apc_paid":null,"fwci":0.4314,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.75699736,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"106","last_page":"117"},"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.9998000264167786,"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.9998000264167786,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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.9990000128746033,"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/haskell","display_name":"Haskell","score":0.7493183612823486},{"id":"https://openalex.org/keywords/functor","display_name":"Functor","score":0.6535852551460266},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.6457316279411316},{"id":"https://openalex.org/keywords/interpretation","display_name":"Interpretation (philosophy)","score":0.576603889465332},{"id":"https://openalex.org/keywords/distributive-property","display_name":"Distributive property","score":0.5622281432151794},{"id":"https://openalex.org/keywords/fixed-point","display_name":"Fixed point","score":0.48561039566993713},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.4651312232017517},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.45927363634109497},{"id":"https://openalex.org/keywords/algebra-over-a-field","display_name":"Algebra over a field","score":0.4287990629673004},{"id":"https://openalex.org/keywords/pure-mathematics","display_name":"Pure mathematics","score":0.38180825114250183},{"id":"https://openalex.org/keywords/discrete-mathematics","display_name":"Discrete mathematics","score":0.355183869600296},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.27763038873672485}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.7493183612823486},{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"score":0.6535852551460266},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6457316279411316},{"id":"https://openalex.org/C527412718","wikidata":"https://www.wikidata.org/wiki/Q855395","display_name":"Interpretation (philosophy)","level":2,"score":0.576603889465332},{"id":"https://openalex.org/C11821877","wikidata":"https://www.wikidata.org/wiki/Q187959","display_name":"Distributive property","level":2,"score":0.5622281432151794},{"id":"https://openalex.org/C61445026","wikidata":"https://www.wikidata.org/wiki/Q217608","display_name":"Fixed point","level":2,"score":0.48561039566993713},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.4651312232017517},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.45927363634109497},{"id":"https://openalex.org/C136119220","wikidata":"https://www.wikidata.org/wiki/Q1000660","display_name":"Algebra over a field","level":2,"score":0.4287990629673004},{"id":"https://openalex.org/C202444582","wikidata":"https://www.wikidata.org/wiki/Q837863","display_name":"Pure mathematics","level":1,"score":0.38180825114250183},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.355183869600296},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.27763038873672485},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2804302.2804310","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2804302.2804310","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.7900000214576721,"display_name":"Peace, Justice and strong institutions","id":"https://metadata.un.org/sdg/16"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":14,"referenced_works":["https://openalex.org/W1776874095","https://openalex.org/W1984820433","https://openalex.org/W2017778827","https://openalex.org/W2028880435","https://openalex.org/W2035890727","https://openalex.org/W2045900383","https://openalex.org/W2072686503","https://openalex.org/W2114991657","https://openalex.org/W2154521708","https://openalex.org/W2490708582","https://openalex.org/W2912949875","https://openalex.org/W4243099941","https://openalex.org/W4250303599","https://openalex.org/W4298207198"],"related_works":["https://openalex.org/W2112263414","https://openalex.org/W3004782279","https://openalex.org/W1602185604","https://openalex.org/W2028779182","https://openalex.org/W4242678340","https://openalex.org/W2140654465","https://openalex.org/W2129253059","https://openalex.org/W1488646450","https://openalex.org/W4296274916","https://openalex.org/W1504459189"],"abstract_inverted_index":{"A":[0],"piece":[1],"of":[2,36,49,118,132,141,173,178,189,197,223],"functional":[3],"programming":[4],"folklore":[5],"due":[6],"to":[7,52,54,64,98,109,144,146,163,212],"Piponi":[8],"provides":[9,123],"L\u00f6b's":[10,37,66],"theorem":[11,38,67],"from":[12],"modal":[13,26,110],"provability":[14,82],"logic":[15],"with":[16],"a":[17,42,50,85,105,115,133,142,170,179,207,221],"computational":[18,127],"interpretation":[19,60,128],"as":[20,28],"an":[21,29,76],"unusual":[22],"fixed":[23,43,91,135,200],"point.":[24,201],"Interpreting":[25],"necessity":[27],"arbitrary":[30,190],"Functor":[31],"in":[32,80],"Haskell,":[33],"the":[34,55,81,87,130,151,176,194],"\"type\"":[35],"is":[39,114],"inhabited":[40],"by":[41,69,94],"point":[44,92,136],"function":[45,137],"allowing":[46,138],"each":[47,139],"part":[48,140],"structure":[51,143],"refer":[53,145],"whole.":[56,152],"However,":[57],"Functor's":[58],"logical":[59],"may":[61,184],"be":[62,185],"used":[63],"prove":[65],"only":[68],"relying":[70],"on":[71],"its":[72,100,147],"implicit":[73],"functorial":[74,96],"strength,":[75],"axiom":[77],"not":[78],"available":[79],"modality.":[83],"As":[84],"result,":[86],"well":[88],"known":[89],"loeb":[90,164],"\"cheats\"":[93],"using":[95],"strength":[97],"implement":[99],"recursion.":[101],"Rather":[102],"than":[103],"Functor,":[104],"closer":[106],"Curry":[107],"analogue":[108],"logic's":[111],"Howard":[112],"inspiration":[113],"closed":[116,182],"(semi-)comonad,":[117],"which":[119],"Haskell's":[120],"ComonadApply":[121],"typeclass":[122],"analogous":[124],"structure.":[125],"Its":[126],"permits":[129],"definition":[131],"novel":[134],"own":[148],"context":[149],"within":[150],"This":[153],"construction":[154],"further":[155],"guarantees":[156,196],"maximal":[157],"sharing":[158],"and":[159,215],"asymptotic":[160],"efficiency":[161],"superior":[162],"for":[165,220],"locally":[166],"contextual":[167],"computations":[168],"upon":[169],"large":[171],"class":[172],"structures.":[174],"With":[175],"addition":[177],"distributive":[180],"law,":[181],"comonads":[183],"composed":[186],"into":[187],"spaces":[188],"dimensionality":[191],"while":[192],"preserving":[193],"performance":[195],"this":[198],"new":[199],"From":[202],"these":[203],"elements,":[204],"we":[205],"construct":[206],"small":[208],"embedded":[209],"domain-specific":[210],"language":[211],"elegantly":[213],"express":[214],"evaluate":[216],"multidimensional":[217],"\"spreadsheet-like\"":[218],"recurrences":[219],"variety":[222],"cellular":[224],"automata.":[225]},"counts_by_year":[{"year":2018,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
