{"id":"https://openalex.org/W2076004629","doi":"https://doi.org/10.1017/s0956796800001258","title":"The ins and outs of Clean I/O","display_name":"The ins and outs of Clean I/O","publication_year":1995,"publication_date":"1995-01-01","ids":{"openalex":"https://openalex.org/W2076004629","doi":"https://doi.org/10.1017/s0956796800001258","mag":"2076004629"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796800001258","is_oa":false,"landing_page_url":"https://doi.org/10.1017/s0956796800001258","pdf_url":null,"source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://hdl.handle.net/2066/111084","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5081280625","display_name":"Peter Achten","orcid":"https://orcid.org/0000-0002-3585-7165"},"institutions":[{"id":"https://openalex.org/I145872427","display_name":"Radboud University Nijmegen","ror":"https://ror.org/016xsfp80","country_code":"NL","type":"education","lineage":["https://openalex.org/I145872427"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Peter Achten","raw_affiliation_strings":["Computing Science Institute, University of Nijmegen, 1 Toernooiveld, 6525ED, Nijmegen, The Netherlands (e-mail:","Computing Science Institute, University of Nijmegen, 1 Toernooiveld, 6525ED, Nijmegen, The Netherlands ("],"affiliations":[{"raw_affiliation_string":"Computing Science Institute, University of Nijmegen, 1 Toernooiveld, 6525ED, Nijmegen, The Netherlands (e-mail:","institution_ids":["https://openalex.org/I145872427"]},{"raw_affiliation_string":"Computing Science Institute, University of Nijmegen, 1 Toernooiveld, 6525ED, Nijmegen, The Netherlands (","institution_ids":["https://openalex.org/I145872427"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5049917627","display_name":"Rinus Plasmeijer","orcid":"https://orcid.org/0009-0007-1606-8412"},"institutions":[{"id":"https://openalex.org/I145872427","display_name":"Radboud University Nijmegen","ror":"https://ror.org/016xsfp80","country_code":"NL","type":"education","lineage":["https://openalex.org/I145872427"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Rinus Plasmeijer","raw_affiliation_strings":["Computing Science Institute, University of Nijmegen, 1 Toernooiveld, 6525ED, Nijmegen, The Netherlands (e-mail:","Computing Science Institute, University of Nijmegen, 1 Toernooiveld, 6525ED, Nijmegen, The Netherlands ("],"affiliations":[{"raw_affiliation_string":"Computing Science Institute, University of Nijmegen, 1 Toernooiveld, 6525ED, Nijmegen, The Netherlands (e-mail:","institution_ids":["https://openalex.org/I145872427"]},{"raw_affiliation_string":"Computing Science Institute, University of Nijmegen, 1 Toernooiveld, 6525ED, Nijmegen, The Netherlands (","institution_ids":["https://openalex.org/I145872427"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5081280625"],"corresponding_institution_ids":["https://openalex.org/I145872427"],"apc_list":null,"apc_paid":null,"fwci":6.4685,"has_fulltext":true,"cited_by_count":72,"citation_normalized_percentile":{"value":0.9646859,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":"5","issue":"1","first_page":"81","last_page":"110"},"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.9940000176429749,"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.9940000176429749,"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.9919999837875366,"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/T10933","display_name":"Real-Time Systems Scheduling","score":0.9846000075340271,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8788948059082031},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7723460793495178},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.6331823468208313},{"id":"https://openalex.org/keywords/event-driven-programming","display_name":"Event-driven programming","score":0.5605782866477966},{"id":"https://openalex.org/keywords/event","display_name":"Event (particle physics)","score":0.5569804310798645},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.49981260299682617},{"id":"https://openalex.org/keywords/third-generation-programming-language","display_name":"Third-generation programming language","score":0.4335029423236847},{"id":"https://openalex.org/keywords/fifth-generation-programming-language","display_name":"Fifth-generation programming language","score":0.35661470890045166},{"id":"https://openalex.org/keywords/reactive-programming","display_name":"Reactive programming","score":0.35269695520401},{"id":"https://openalex.org/keywords/second-generation-programming-language","display_name":"Second-generation programming language","score":0.3474302887916565},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.19756057858467102}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8788948059082031},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7723460793495178},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6331823468208313},{"id":"https://openalex.org/C77362995","wikidata":"https://www.wikidata.org/wiki/Q1135914","display_name":"Event-driven programming","level":5,"score":0.5605782866477966},{"id":"https://openalex.org/C2779662365","wikidata":"https://www.wikidata.org/wiki/Q5416694","display_name":"Event (particle physics)","level":2,"score":0.5569804310798645},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.49981260299682617},{"id":"https://openalex.org/C206146517","wikidata":"https://www.wikidata.org/wiki/Q1294375","display_name":"Third-generation programming language","level":5,"score":0.4335029423236847},{"id":"https://openalex.org/C199305712","wikidata":"https://www.wikidata.org/wiki/Q3205914","display_name":"Fifth-generation programming language","level":3,"score":0.35661470890045166},{"id":"https://openalex.org/C150762246","wikidata":"https://www.wikidata.org/wiki/Q4354073","display_name":"Reactive programming","level":4,"score":0.35269695520401},{"id":"https://openalex.org/C11164408","wikidata":"https://www.wikidata.org/wiki/Q18657800","display_name":"Second-generation programming language","level":4,"score":0.3474302887916565},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.19756057858467102},{"id":"https://openalex.org/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0}],"mesh":[],"locations_count":5,"locations":[{"id":"doi:10.1017/s0956796800001258","is_oa":false,"landing_page_url":"https://doi.org/10.1017/s0956796800001258","pdf_url":null,"source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},{"id":"pmh:oai:repository.ubn.ru.nl:2066/111084","is_oa":true,"landing_page_url":"https://hdl.handle.net/2066/111084","pdf_url":"http://hdl.handle.net/2066/111084","source":{"id":"https://openalex.org/S4306401067","display_name":"Radboud Repository (Radboud University)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I145872427","host_organization_name":"Radboud University Nijmegen","host_organization_lineage":["https://openalex.org/I145872427"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Article / Letter to editor"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.17.935","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.935","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ftp://ftp.cs.kun.nl/pub/Clean/papers/ins_outs.ps.Z","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.36.2971","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.2971","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ftp://ftp.cs.kun.nl/pub/Clean/papers/1995/achp95-InsOuts.ps.gz","raw_type":"text"},{"id":"pmh:ru:oai:repository.ubn.ru.nl:2066/111084","is_oa":true,"landing_page_url":"http://hdl.handle.net/2066/111084","pdf_url":null,"source":{"id":"https://openalex.org/S4306401843","display_name":"Data Archiving and Networked Services (DANS)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I1322597698","host_organization_name":"Royal Netherlands Academy of Arts and Sciences","host_organization_lineage":["https://openalex.org/I1322597698"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Journal of Functional Programming, 5, 81 - 110","raw_type":"info:eu-repo/semantics/article"}],"best_oa_location":{"id":"pmh:oai:repository.ubn.ru.nl:2066/111084","is_oa":true,"landing_page_url":"https://hdl.handle.net/2066/111084","pdf_url":"http://hdl.handle.net/2066/111084","source":{"id":"https://openalex.org/S4306401067","display_name":"Radboud Repository (Radboud University)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I145872427","host_organization_name":"Radboud University Nijmegen","host_organization_lineage":["https://openalex.org/I145872427"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Article / Letter to editor"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2076004629.pdf","grobid_xml":"https://content.openalex.org/works/W2076004629.grobid-xml"},"referenced_works_count":33,"referenced_works":["https://openalex.org/W154051714","https://openalex.org/W159710003","https://openalex.org/W1513445195","https://openalex.org/W1516502066","https://openalex.org/W1520096901","https://openalex.org/W1541823905","https://openalex.org/W1549205822","https://openalex.org/W1555216982","https://openalex.org/W1557619244","https://openalex.org/W1586212986","https://openalex.org/W1594992894","https://openalex.org/W1966458383","https://openalex.org/W1971791303","https://openalex.org/W2062950667","https://openalex.org/W2078944436","https://openalex.org/W2089316697","https://openalex.org/W2097509104","https://openalex.org/W2099020042","https://openalex.org/W2116293853","https://openalex.org/W2118883965","https://openalex.org/W2145368774","https://openalex.org/W2155397441","https://openalex.org/W2156876717","https://openalex.org/W2172307690","https://openalex.org/W2295914203","https://openalex.org/W2531351704","https://openalex.org/W2911865844","https://openalex.org/W2912106379","https://openalex.org/W2914702690","https://openalex.org/W3021661880","https://openalex.org/W3102045914","https://openalex.org/W4214650368","https://openalex.org/W6666213380"],"related_works":["https://openalex.org/W2148929677","https://openalex.org/W3038908675","https://openalex.org/W2227474268","https://openalex.org/W3028735927","https://openalex.org/W4246657653","https://openalex.org/W4253687001","https://openalex.org/W4312334447","https://openalex.org/W4255123488","https://openalex.org/W2051841925","https://openalex.org/W2954318817"],"abstract_inverted_index":{"Abstract":[0],"Functional":[1,51],"programming":[2,21,52,63,87,100,120],"languages":[3,22,43,53,64,183],"have":[4,44,54],"banned":[5],"assignment":[6,34],"because":[7,33,65],"of":[8,14,91,93,98,110,146,247,263],"its":[9,129],"undesirable":[10],"properties.":[11],"The":[12,254],"reward":[13],"this":[15,75],"rigorous":[16],"decision":[17],"is":[18,27,104,172,179],"that":[19,79,125],"functional":[20,42,86,99,119,258],"are":[23,126,143,238,256,274],"side-effect":[24],"free.":[25],"There":[26],"another":[28],"side":[29],"to":[30,61,138,157,203,213],"the":[31,94,111,116,133,144,153,245,248,277],"coin:":[32],"plays":[35],"a":[36,45,85,163,192,200,218,227,231],"crucial":[37],"role":[38],"in":[39,84,128,162,180,191],"Input/Output":[40],"(I/O),":[41],"hard":[46],"time":[47],"dealing":[48],"with":[49,69,136,199],"I/O.":[50,208],"therefore":[55],"often":[56],"been":[57,211],"stigmatised":[58],"as":[59,173,177,217],"inferior":[60],"imperative":[62,182],"they":[66],"cannot":[67],"deal":[68],"I/O":[70,80,112,130,155,161,171,196],"very":[71],"well":[72],".":[73],"In":[74],"paper,":[76],"we":[77],"show":[78],"can":[81,185],"be":[82],"incorporated":[83],"language":[88,121],"without":[89],"loss":[90],"any":[92],"generally":[95],"accepted":[96],"advantages":[97],"languages.":[101],"This":[102],"discussion":[103],"supported":[105],"by":[106,115],"an":[107,222],"extensive":[108,261],"account":[109],"system":[113,131],"offered":[114],"lazy,":[117],"purely":[118],"Clean.":[122],"Two":[123],"aspects":[124,142],"paramount":[127],"make":[132,260],"approach":[134],"novel":[135],"respect":[137],"other":[139],"approaches.":[140],"These":[141,234],"technique":[145],"explicit":[147],"multiple":[148],"environment":[149,251],"passing":[150],",":[151],"and":[152,166,175,188,230,259,268,285],"Event":[154,195],"framework":[156,202],"program":[158],"Graphical":[159,206],"User":[160,207],"highly":[164],"structured":[165],"high-level":[167,201],"way.":[168],"Clean":[169,194],"file":[170],"powerful":[174],"flexible":[176],"it":[178],"common":[181],"(one":[184],"read,":[186],"write,":[187],"seek":[189],"directly":[190],"file).":[193],"provides":[197],"programmers":[198],"specify":[204],"complex":[205],"It":[209],"has":[210],"used":[212],"write":[214],"applications":[215],"such":[216],"window-based":[219],"text":[220],"editor,":[221],"object":[223],"based":[224],"drawing":[225],"program,":[226],"relational":[228],"database,":[229],"spreadsheet":[232],"program.":[233],"graphical":[235],"interactive":[236],"programs":[237],"completely":[239,257],"machine":[240],"independent,":[241],"but":[242],"still":[243],"obey":[244],"look-and-feel":[246],"concrete":[249],"window":[250],"being":[252],"used.":[253],"specifications":[255],"use":[262],"uniqueness":[264],"typing,":[265],"higher-order":[266],"functions,":[267],"algebraic":[269],"data":[270],"types.":[271],"Efficient":[272],"implementations":[273],"present":[275],"on":[276],"Macintosh,":[278],"Sun":[279],"(X":[280],"Windows":[281],"under":[282],"Open":[283],"Look)":[284],"PC":[286],"(OS/2).":[287]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2023,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":3},{"year":2019,"cited_by_count":2},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":1},{"year":2014,"cited_by_count":3},{"year":2013,"cited_by_count":4},{"year":2012,"cited_by_count":4}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
