{"id":"https://openalex.org/W2010482386","doi":"https://doi.org/10.1145/351240.351251","title":"Functional programming in C++","display_name":"Functional programming in C++","publication_year":2000,"publication_date":"2000-09-01","ids":{"openalex":"https://openalex.org/W2010482386","doi":"https://doi.org/10.1145/351240.351251","mag":"2010482386"},"language":"en","primary_location":{"id":"doi:10.1145/351240.351251","doi":"https://doi.org/10.1145/351240.351251","is_oa":false,"landing_page_url":"https://doi.org/10.1145/351240.351251","pdf_url":null,"source":{"id":"https://openalex.org/S7407086784","display_name":"ACM SIGPLAN International Conference on Functional Programming (ICFP)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the fifth ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},"volume":null,"type":"conference-paper","is_traditional":true,"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":null,"display_name":"Brian McNamara","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I130701444","display_name":"Georgia Institute of Technology","ror":"https://ror.org/01zkghx44","country_code":"US","type":"education","lineage":["https://openalex.org/I130701444"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Brian McNamara","raw_affiliation_strings":["College of Computing, Georgia Institute of Technology, Atlanta, GA","College Of Computing, Georgia Institute of Technology, Atlanta, GA#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"College of Computing, Georgia Institute of Technology, Atlanta, GA","institution_ids":["https://openalex.org/I130701444"]},{"raw_affiliation_string":"College Of Computing, Georgia Institute of Technology, Atlanta, GA#TAB#","institution_ids":["https://openalex.org/I130701444"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5043949214","display_name":"Yannis Smaragdakis","orcid":"https://orcid.org/0000-0002-0499-0182","observed_orcids":["https://orcid.org/0000-0002-0499-0182"]},"institutions":[{"id":"https://openalex.org/I130701444","display_name":"Georgia Institute of Technology","ror":"https://ror.org/01zkghx44","country_code":"US","type":"education","lineage":["https://openalex.org/I130701444"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Yannis Smaragdakis","raw_affiliation_strings":["College of Computing, Georgia Institute of Technology, Atlanta, GA","College Of Computing, Georgia Institute of Technology, Atlanta, GA#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"College of Computing, Georgia Institute of Technology, Atlanta, GA","institution_ids":["https://openalex.org/I130701444"]},{"raw_affiliation_string":"College Of Computing, Georgia Institute of Technology, Atlanta, GA#TAB#","institution_ids":["https://openalex.org/I130701444"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I130701444"],"apc_list":null,"apc_paid":null,"fwci":1.0735,"has_fulltext":false,"cited_by_count":44,"citation_normalized_percentile":{"value":0.70155587,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":88,"max":95},"biblio":{"volume":null,"issue":null,"first_page":"118","last_page":"129"},"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/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"}},{"id":"https://openalex.org/T10533","display_name":"Teaching and Learning Programming","score":0.0,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/functional-programming","display_name":"functional programming","score":0.8510000109672546},{"id":"https://openalex.org/keywords/c","display_name":"C++","score":0.9480000138282776},{"id":"https://openalex.org/keywords/higher-order-functions","display_name":"higher-order functions","score":0.9670000076293945},{"id":"https://openalex.org/keywords/polymorphic-functions","display_name":"polymorphic functions","score":0.9039999842643738},{"id":"https://openalex.org/keywords/type-inference","display_name":"type inference","score":0.8119999766349792},{"id":"https://openalex.org/keywords/subtype-polymorphism","display_name":"subtype polymorphism","score":0.9580000042915344},{"id":"https://openalex.org/keywords/parametric-polymorphism","display_name":"parametric polymorphism","score":0.9430000185966492},{"id":"https://openalex.org/keywords/function-objects","display_name":"function objects","score":0.9350000023841858},{"id":"https://openalex.org/keywords/reference-counting","display_name":"reference counting","score":0.9929999709129333},{"id":"https://openalex.org/keywords/aliasing","display_name":"aliasing","score":0.6779999732971191},{"id":"https://openalex.org/keywords/functional-operators","display_name":"functional operators","score":0.593999981880188},{"id":"https://openalex.org/keywords/object-model","display_name":"object model","score":0.5059999823570251}],"concepts":[{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.7571300268173218},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7268682718276978},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7231565713882446},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.6958751678466797},{"id":"https://openalex.org/C2780615836","wikidata":"https://www.wikidata.org/wiki/Q2471869","display_name":"USable","level":2,"score":0.6226847767829895},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.48758214712142944},{"id":"https://openalex.org/C2992306863","wikidata":"https://www.wikidata.org/wiki/Q188860","display_name":"Library function","level":2,"score":0.41705214977264404},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.36446183919906616},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.335779070854187},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.2254272699356079},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.1376139521598816}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/351240.351251","doi":"https://doi.org/10.1145/351240.351251","is_oa":false,"landing_page_url":"https://doi.org/10.1145/351240.351251","pdf_url":null,"source":{"id":"https://openalex.org/S7407086784","display_name":"ACM SIGPLAN International Conference on Functional Programming (ICFP)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the fifth ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.37.2552","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.2552","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cc.gatech.edu/~yannis/fc++/fc++.main.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":10,"referenced_works":["https://openalex.org/W41699526","https://openalex.org/W59481368","https://openalex.org/W203789835","https://openalex.org/W1513612082","https://openalex.org/W1595551119","https://openalex.org/W2068152133","https://openalex.org/W2133546079","https://openalex.org/W2295914203","https://openalex.org/W2968743833","https://openalex.org/W2986935236"],"related_works":["https://openalex.org/W2161298074","https://openalex.org/W1994880624","https://openalex.org/W1989933191","https://openalex.org/W7099055823","https://openalex.org/W2230132651","https://openalex.org/W2968730902","https://openalex.org/W7115072255","https://openalex.org/W2755771550","https://openalex.org/W7150858595","https://openalex.org/W2027751676"],"abstract_inverted_index":{"This":[0],"paper":[1],"describes":[2],"FC++:":[3],"a":[4,49,64,147,157,180],"rich":[5],"library":[6,181],"supporting":[7],"functional":[8,161],"programming":[9,173],"in":[10,19,58,70,83,91,109,115,133],"C++.":[11],"Prior":[12],"approaches":[13],"to":[14,25,72,129,143,171,191],"encoding":[15],"higher":[16],"order":[17],"functions":[18,27,47,90],"C++":[20,53,97,152,194],"have":[21],"suffered":[22],"with":[23,174],"respect":[24],"polymorphic":[26,46],"from":[28,100],"either":[29],"lack":[30],"of":[31,52,150,159,166],"expressiveness":[32],"or":[33],"high":[34],"complexity.":[35],"In":[36],"contrast,":[37],"FC++":[38,59,92,104],"offers":[39],"full":[40],"and":[41,87,123,185],"concise":[42],"support":[43],"for":[44,68],"higher-order":[45],"through":[48],"novel":[50],"use":[51],"type":[54],"inference.Another":[55],"new":[56],"element":[57],"is":[60,81,105,140,179,183],"that":[61,89,182],"it":[62],"implements":[63],"subtype":[65],"polymorphism":[66,77,80],"policy":[67],"functions,":[69],"addition":[71],"the":[73,96,116,144,167,192],"more":[74],"common":[75,82],"parametric":[76],"facilities.":[78],"Subtype":[79],"object":[84,98],"oriented":[85],"languages":[86],"ensures":[88],"fit":[93],"well":[94],"within":[95],"model.Apart":[99],"these":[101],"conceptual":[102],"differences,":[103],"also":[106,141],"an":[107,134],"improvement":[108],"technical":[110],"terms":[111],"over":[112],"previous":[113],"efforts":[114],"literature.":[117],"Our":[118],"function":[119],"objects":[120],"are":[121],"reference-counted":[122],"can":[124],"be":[125,130],"aliased":[126],"without":[127],"needing":[128],"copied,":[131],"resulting":[132],"efficient":[135],"implementation.":[136],"The":[137,176],"reference-counting":[138],"mechanism":[139],"exported":[142],"user":[145],"as":[146],"general-purpose":[148],"replacement":[149],"native":[151],"pointers.":[153],"Finally,":[154],"we":[155],"supply":[156],"number":[158],"useful":[160],"operators":[162],"(a":[163],"large":[164],"part":[165],"Haskell":[168],"Standard":[169],"Prelude)":[170],"facilitate":[172],"FC++.":[175],"end":[177],"result":[178],"usable":[184],"efficient,":[186],"while":[187],"requiring":[188],"no":[189],"extensions":[190],"base":[193],"language.":[195]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":1},{"year":2015,"cited_by_count":1},{"year":2014,"cited_by_count":2},{"year":2013,"cited_by_count":1},{"year":2012,"cited_by_count":1}],"updated_date":"2026-11-07T11:25:07.637180","created_date":"2016-06-24T00:00:00"}
