{"id":"https://openalex.org/W2108336579","doi":"https://doi.org/10.1002/spe.4380170603","title":"Making form follow function: An exercise in functional programming style","display_name":"Making form follow function: An exercise in functional programming style","publication_year":1987,"publication_date":"1987-06-01","ids":{"openalex":"https://openalex.org/W2108336579","doi":"https://doi.org/10.1002/spe.4380170603","mag":"2108336579"},"language":"en","primary_location":{"id":"doi:10.1002/spe.4380170603","is_oa":false,"landing_page_url":"https://doi.org/10.1002/spe.4380170603","pdf_url":null,"source":{"id":"https://openalex.org/S122199241","display_name":"Software Practice and Experience","issn_l":"0038-0644","issn":["0038-0644","1097-024X"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320595","host_organization_name":"Wiley","host_organization_lineage":["https://openalex.org/P4310320595"],"host_organization_lineage_names":["Wiley"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Software: Practice and Experience","raw_type":"journal-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/A5082903187","display_name":"Jon Fairbairn","orcid":null},"institutions":[{"id":"https://openalex.org/I241749","display_name":"University of Cambridge","ror":"https://ror.org/013meh722","country_code":"GB","type":"education","lineage":["https://openalex.org/I241749"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Jon Fairbairn","raw_affiliation_strings":["University of Cambridge Computer Laboratory, Corn Exchange Street, Cambridge CB2 3QG, U.K"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Cambridge Computer Laboratory, Corn Exchange Street, Cambridge CB2 3QG, U.K","institution_ids":["https://openalex.org/I241749"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5082903187"],"corresponding_institution_ids":["https://openalex.org/I241749"],"apc_list":{"value":4650,"currency":"USD","value_usd":4650},"apc_paid":null,"fwci":0.9315,"has_fulltext":false,"cited_by_count":26,"citation_normalized_percentile":{"value":0.8183912,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":"17","issue":"6","first_page":"379","last_page":"386"},"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.9829999804496765,"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.9829999804496765,"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/T10533","display_name":"Teaching and Learning Programming","score":0.9697999954223633,"subfield":{"id":"https://openalex.org/subfields/1706","display_name":"Computer Science Applications"},"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/T10260","display_name":"Software Engineering Research","score":0.9537000060081482,"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/programmer","display_name":"Programmer","score":0.8364315629005432},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7671812772750854},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.6933354735374451},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6923133730888367},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.6513182520866394},{"id":"https://openalex.org/keywords/presentation","display_name":"Presentation (obstetrics)","score":0.6446966528892517},{"id":"https://openalex.org/keywords/style","display_name":"Style (visual arts)","score":0.6340665817260742},{"id":"https://openalex.org/keywords/reading","display_name":"Reading (process)","score":0.5590777397155762},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.5410953164100647},{"id":"https://openalex.org/keywords/programming-style","display_name":"Programming style","score":0.4893729090690613},{"id":"https://openalex.org/keywords/simple","display_name":"Simple (philosophy)","score":0.43113386631011963},{"id":"https://openalex.org/keywords/human\u2013computer-interaction","display_name":"Human\u2013computer interaction","score":0.3883267045021057},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.3408249020576477},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.28010016679763794}],"concepts":[{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.8364315629005432},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7671812772750854},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.6933354735374451},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6923133730888367},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6513182520866394},{"id":"https://openalex.org/C2777601897","wikidata":"https://www.wikidata.org/wiki/Q3409113","display_name":"Presentation (obstetrics)","level":2,"score":0.6446966528892517},{"id":"https://openalex.org/C2776445246","wikidata":"https://www.wikidata.org/wiki/Q1792644","display_name":"Style (visual arts)","level":2,"score":0.6340665817260742},{"id":"https://openalex.org/C554936623","wikidata":"https://www.wikidata.org/wiki/Q199657","display_name":"Reading (process)","level":2,"score":0.5590777397155762},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.5410953164100647},{"id":"https://openalex.org/C2776245389","wikidata":"https://www.wikidata.org/wiki/Q962139","display_name":"Programming style","level":2,"score":0.4893729090690613},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.43113386631011963},{"id":"https://openalex.org/C107457646","wikidata":"https://www.wikidata.org/wiki/Q207434","display_name":"Human\u2013computer interaction","level":1,"score":0.3883267045021057},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.3408249020576477},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.28010016679763794},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C126838900","wikidata":"https://www.wikidata.org/wiki/Q77604","display_name":"Radiology","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C166957645","wikidata":"https://www.wikidata.org/wiki/Q23498","display_name":"Archaeology","level":1,"score":0.0},{"id":"https://openalex.org/C71924100","wikidata":"https://www.wikidata.org/wiki/Q11190","display_name":"Medicine","level":0,"score":0.0},{"id":"https://openalex.org/C78458016","wikidata":"https://www.wikidata.org/wiki/Q840400","display_name":"Evolutionary biology","level":1,"score":0.0},{"id":"https://openalex.org/C95457728","wikidata":"https://www.wikidata.org/wiki/Q309","display_name":"History","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1002/spe.4380170603","is_oa":false,"landing_page_url":"https://doi.org/10.1002/spe.4380170603","pdf_url":null,"source":{"id":"https://openalex.org/S122199241","display_name":"Software Practice and Experience","issn_l":"0038-0644","issn":["0038-0644","1097-024X"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320595","host_organization_name":"Wiley","host_organization_lineage":["https://openalex.org/P4310320595"],"host_organization_lineage_names":["Wiley"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Software: Practice and Experience","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education","score":0.7900000214576721}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":4,"referenced_works":["https://openalex.org/W655501358","https://openalex.org/W1527809250","https://openalex.org/W2295597695","https://openalex.org/W2561675875"],"related_works":["https://openalex.org/W2786788398","https://openalex.org/W1484366641","https://openalex.org/W2140864834","https://openalex.org/W4246284820","https://openalex.org/W1573404916","https://openalex.org/W2951545969","https://openalex.org/W1981679168","https://openalex.org/W2138807037","https://openalex.org/W2053241664","https://openalex.org/W1568456273"],"abstract_inverted_index":{"Abstract":[0],"The":[1,67],"combined":[2],"use":[3],"of":[4,41,69,79,85,104],"user\u2010defined":[5],"infix":[6],"operators":[7],"and":[8,44,47,72],"higher":[9],"order":[10],"functions":[11],"allows":[12],"the":[13,39,77,80,86,93,102],"programmer":[14,51],"to":[15,21,29,76,98],"invent":[16],"new":[17],"control":[18],"structures":[19],"tailored":[20],"a":[22,33,56,59],"particular":[23],"problem":[24],"area.":[25],"This":[26],"paper":[27],"is":[28,62,90],"suggest":[30],"that":[31,92],"such":[32],"combination":[34],"has":[35],"beneficial":[36],"effects":[37],"on":[38],"ease":[40],"both":[42],"writing":[43],"reading":[45],"programs,":[46],"hence":[48],"can":[49],"increase":[50],"productivity.":[52],"As":[53],"an":[54],"example,":[55],"parser":[57,71],"for":[58],"simple":[60],"language":[61,81],"presented":[63],"in":[64],"this":[65,70],"style.":[66],"compactness":[68],"its":[73],"notational":[74],"similarity":[75],"BNF":[78],"are":[82],"important":[83],"advantages":[84],"approach":[87],"taken.":[88],"It":[89],"hoped":[91],"presentation":[94],"will":[95],"be":[96],"palatable":[97],"people":[99],"unfamiliar":[100],"with":[101],"concepts":[103],"functional":[105],"programming.":[106]},"counts_by_year":[{"year":2018,"cited_by_count":1}],"updated_date":"2026-08-21T09:56:20.448147","created_date":"2025-10-10T00:00:00"}
