{"id":"https://openalex.org/W2161298074","doi":"https://doi.org/10.1017/s0956796803004969","title":"Functional programming with the FC++ library","display_name":"Functional programming with the FC++ library","publication_year":2004,"publication_date":"2004-06-07","ids":{"openalex":"https://openalex.org/W2161298074","doi":"https://doi.org/10.1017/s0956796803004969","mag":"2161298074"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796803004969","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796803004969","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/1EC78833E953D6798C39C2E4B15EE4B4/S0956796803004969a.pdf/div-class-title-functional-programming-with-the-fc-library-div.pdf","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":"bronze","oa_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/1EC78833E953D6798C39C2E4B15EE4B4/S0956796803004969a.pdf/div-class-title-functional-programming-with-the-fc-library-div.pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5113628191","display_name":"Brian McNamara","orcid":null},"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, GA, USA, 801 Atlantic Dr. Atlanta, GA 30332-0280"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"College of Computing, Georgia Institute of Technology, GA, USA, 801 Atlantic Dr. Atlanta, GA 30332-0280","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"},"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, GA, USA, 801 Atlantic Dr. Atlanta, GA 30332-0280"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"College of Computing, Georgia Institute of Technology, GA, USA, 801 Atlantic Dr. Atlanta, GA 30332-0280","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":5.5505,"has_fulltext":true,"cited_by_count":24,"citation_normalized_percentile":{"value":0.95778004,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":"14","issue":"4","first_page":"429","last_page":"472"},"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.9994999766349792,"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.9994999766349792,"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/T10142","display_name":"Formal Methods in Verification","score":0.9937999844551086,"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"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.991100013256073,"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/haskell","display_name":"Haskell","score":0.9411755800247192},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8848936557769775},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.7380863428115845},{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.602415919303894},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5806275010108948},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.47256889939308167},{"id":"https://openalex.org/keywords/lazy-evaluation","display_name":"Lazy evaluation","score":0.45314133167266846},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.41268038749694824},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3945535719394684},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.16141340136528015}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9411755800247192},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8848936557769775},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.7380863428115845},{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.602415919303894},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5806275010108948},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.47256889939308167},{"id":"https://openalex.org/C128099668","wikidata":"https://www.wikidata.org/wiki/Q573952","display_name":"Lazy evaluation","level":3,"score":0.45314133167266846},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.41268038749694824},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3945535719394684},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.16141340136528015},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1017/s0956796803004969","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796803004969","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/1EC78833E953D6798C39C2E4B15EE4B4/S0956796803004969a.pdf/div-class-title-functional-programming-with-the-fc-library-div.pdf","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:CiteSeerX.psu:10.1.1.18.2492","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.2492","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.oonumerics.org/tmpw01/mcnamara.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.19.5348","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.5348","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++/fcpp-jfp.pdf","raw_type":"text"}],"best_oa_location":{"id":"doi:10.1017/s0956796803004969","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796803004969","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/1EC78833E953D6798C39C2E4B15EE4B4/S0956796803004969a.pdf/div-class-title-functional-programming-with-the-fc-library-div.pdf","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"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2161298074.pdf","grobid_xml":"https://content.openalex.org/works/W2161298074.grobid-xml"},"referenced_works_count":18,"referenced_works":["https://openalex.org/W41699526","https://openalex.org/W53500718","https://openalex.org/W203789835","https://openalex.org/W1513612082","https://openalex.org/W1530804070","https://openalex.org/W1595551119","https://openalex.org/W1994880624","https://openalex.org/W2010482386","https://openalex.org/W2062950667","https://openalex.org/W2068152133","https://openalex.org/W2074231109","https://openalex.org/W2133546079","https://openalex.org/W2142916157","https://openalex.org/W2295914203","https://openalex.org/W2798277317","https://openalex.org/W2913602891","https://openalex.org/W2968743833","https://openalex.org/W3022826140"],"related_works":["https://openalex.org/W2095136535","https://openalex.org/W2392016641","https://openalex.org/W2116323891","https://openalex.org/W2521829344","https://openalex.org/W2466718051","https://openalex.org/W2764317176","https://openalex.org/W2005083846","https://openalex.org/W2168393711","https://openalex.org/W1734457603","https://openalex.org/W2201673571"],"abstract_inverted_index":{"We":[0,114,157],"describe":[1],"the":[2,81,103,116,125,136],"FC++":[3,39,58,108,154],"library,":[4],"a":[5,50,61,67,75,87,99,119],"rich":[6],"library":[7,59,94,109],"supporting":[8],"functional":[9],"programming":[10],"in":[11,20,73,168],"C++.":[12],"Prior":[13],"approaches":[14],"to":[15,26,70],"encoding":[16],"higher":[17],"order":[18,142],"functions":[19,28,48],"C++":[21,54],"have":[22,130,134],"suffered":[23],"with":[24,164],"respect":[25],"polymorphic":[27,47],"from":[29],"either":[30],"lack":[31],"of":[32,53,63,83,95,102,118,121,127,143,153],"expressiveness":[33],"or":[34],"high":[35],"complexity.":[36],"In":[37],"contrast,":[38],"offers":[40],"full":[41],"and":[42,91],"concise":[43],"support":[44],"for":[45,145],"higher-order":[46],"through":[49],"novel":[51],"use":[52,152],"type":[55],"inference.":[56],"The":[57,107],"has":[60,110],"number":[62,120],"useful":[64,96],"features,":[65],"including":[66,98],"generalized":[68],"mechanism":[69],"implement":[71],"currying":[72],"C++,":[74],"\u201clazy":[76],"list\u201d":[77],"class":[78],"which":[79,123],"enables":[80],"creation":[82],"\u201cinfinite":[84],"data":[85],"structures\u201d,":[86],"subtype":[88],"polymorphism":[89],"facility,":[90],"an":[92,111,141,160],"extensive":[93],"functions,":[97],"large":[100],"part":[101],"Haskell":[104],"Standard":[105],"Prelude.":[106],"efficient":[112],"implementation.":[113],"show":[115],"results":[117],"experiments":[122],"demonstrate":[124],"value":[126],"optimizations":[128,133],"we":[129],"implemented.":[131],"These":[132],"improved":[135],"run-time":[137],"performance":[138,162],"by":[139],"about":[140],"magnitude":[144],"some":[146],"benchmark":[147],"programs":[148,166],"that":[149],"make":[150,159],"heavy":[151],"lazy":[155],"lists.":[156],"also":[158],"informal":[161],"comparison":[163],"similar":[165],"written":[167],"Haskell.":[169]},"counts_by_year":[{"year":2019,"cited_by_count":1},{"year":2012,"cited_by_count":3}],"updated_date":"2026-06-26T08:34:08.712188","created_date":"2025-10-10T00:00:00"}
