{"id":"https://openalex.org/W2078623319","doi":"https://doi.org/10.5381/jot.2009.8.6.a5","title":"Functional Programming at Work in Object- Oriented Programming.","display_name":"Functional Programming at Work in Object- Oriented Programming.","publication_year":2009,"publication_date":"2009-01-01","ids":{"openalex":"https://openalex.org/W2078623319","doi":"https://doi.org/10.5381/jot.2009.8.6.a5","mag":"2078623319"},"language":"en","primary_location":{"id":"doi:10.5381/jot.2009.8.6.a5","doi":"https://doi.org/10.5381/jot.2009.8.6.a5","is_oa":true,"landing_page_url":"https://doi.org/10.5381/jot.2009.8.6.a5","pdf_url":"http://www.jot.fm/issues/issue_2009_09/article5.pdf","source":{"id":"https://openalex.org/S172897590","display_name":"The Journal of Object Technology","issn_l":"1660-1769","issn":["1660-1769"],"is_oa":false,"is_in_doaj":false,"is_core":true,"listed_in":["cwts-core","dongbi-d","jufo-1","norway-1","poland-70","russia-white-list-3"],"host_organization":"https://openalex.org/P4383699229","host_organization_name":"EtH Zurich","host_organization_lineage":["https://openalex.org/P4383699229"],"host_organization_lineage_names":["EtH Zurich"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Journal of Object Technology","raw_type":"journal-article"},"volume":null,"type":"article","is_traditional":true,"indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"http://www.jot.fm/issues/issue_2009_09/article5.pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5080812141","display_name":"Ph. Narbel","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I4210142254","display_name":"Laboratoire Bordelais de Recherche en Informatique","ror":"https://ror.org/03adqg323","country_code":"FR","type":"facility","lineage":["https://openalex.org/I1294671590","https://openalex.org/I15057530","https://openalex.org/I4210142254","https://openalex.org/I4210159245","https://openalex.org/I4210160189"]},{"id":"https://openalex.org/I4396570533","display_name":"Universit\u00e9 Bordeaux-I","ror":"https://ror.org/001anga17","country_code":"FR","type":"education","lineage":["https://openalex.org/I15057530","https://openalex.org/I4396570533"]}],"countries":["FR"],"is_corresponding":true,"raw_author_name":"Ph. Narbel","raw_affiliation_strings":["LaBRI, University of Bordeaux 1, France"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"LaBRI, University of Bordeaux 1, France","institution_ids":["https://openalex.org/I4210142254","https://openalex.org/I4396570533"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5080812141"],"corresponding_institution_ids":["https://openalex.org/I4210142254","https://openalex.org/I4396570533"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":1,"citation_normalized_percentile":{"value":0.0,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":88,"max":93},"biblio":{"volume":"8","issue":"6","first_page":"181","last_page":"181"},"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.9926999807357788,"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":0.9926999807357788,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.002199999988079071,"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/T12490","display_name":"Software Engineering and Design Patterns","score":0.0010000000474974513,"subfield":{"id":"https://openalex.org/subfields/3303","display_name":"Development"},"field":{"id":"https://openalex.org/fields/33","display_name":"Social Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/functional-programming","display_name":"functional programming","score":0.9599999785423279},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"object-oriented programming","score":0.9990000128746033},{"id":"https://openalex.org/keywords/program-design","display_name":"program design","score":0.652999997138977},{"id":"https://openalex.org/keywords/code-abstraction","display_name":"code abstraction","score":0.628000020980835},{"id":"https://openalex.org/keywords/partial-application","display_name":"partial application","score":0.9929999709129333},{"id":"https://openalex.org/keywords/currying","display_name":"currying","score":1.0},{"id":"https://openalex.org/keywords/design-patterns","display_name":"design patterns","score":0.6259999871253967},{"id":"https://openalex.org/keywords/strategy-pattern","display_name":"strategy pattern","score":0.6850000023841858},{"id":"https://openalex.org/keywords/command-pattern","display_name":"command pattern","score":0.9909999966621399},{"id":"https://openalex.org/keywords/observer-pattern","display_name":"observer pattern","score":0.9909999966621399},{"id":"https://openalex.org/keywords/proxy-pattern","display_name":"proxy pattern","score":0.9789999723434448},{"id":"https://openalex.org/keywords/visitor-pattern","display_name":"visitor pattern","score":0.9959999918937683},{"id":"https://openalex.org/keywords/c-3-0","display_name":"C# 3.0","score":0.9459999799728394},{"id":"https://openalex.org/keywords/delegates","display_name":"delegates","score":0.9670000076293945}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.840334415435791},{"id":"https://openalex.org/C177774035","wikidata":"https://www.wikidata.org/wiki/Q1246948","display_name":"Granularity","level":2,"score":0.7494844198226929},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.7129682898521423},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6740672588348389},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6623103618621826},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.5880160927772522},{"id":"https://openalex.org/C14501506","wikidata":"https://www.wikidata.org/wiki/Q5253831","display_name":"Design pattern","level":2,"score":0.44741031527519226},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.4423184394836426},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.44211259484291077},{"id":"https://openalex.org/C124304363","wikidata":"https://www.wikidata.org/wiki/Q673661","display_name":"Abstraction","level":2,"score":0.42627543210983276},{"id":"https://openalex.org/C146054899","wikidata":"https://www.wikidata.org/wiki/Q181156","display_name":"Software design pattern","level":3,"score":0.41109079122543335},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3266063332557678},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.1895609200000763},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.12941119074821472},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","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}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.5381/jot.2009.8.6.a5","doi":"https://doi.org/10.5381/jot.2009.8.6.a5","is_oa":true,"landing_page_url":"https://doi.org/10.5381/jot.2009.8.6.a5","pdf_url":"http://www.jot.fm/issues/issue_2009_09/article5.pdf","source":{"id":"https://openalex.org/S172897590","display_name":"The Journal of Object Technology","issn_l":"1660-1769","issn":["1660-1769"],"is_oa":false,"is_in_doaj":false,"is_core":true,"listed_in":["cwts-core","dongbi-d","jufo-1","norway-1","poland-70","russia-white-list-3"],"host_organization":"https://openalex.org/P4383699229","host_organization_name":"EtH Zurich","host_organization_lineage":["https://openalex.org/P4383699229"],"host_organization_lineage_names":["EtH Zurich"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Journal of Object Technology","raw_type":"journal-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.153.7429","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.153.7429","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://homepages.fh-regensburg.de/~mpool/mpool08/submissions/Narbel.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.159.4650","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.159.4650","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.jot.fm/issues/issue_2009_09/article5.pdf","raw_type":"text"}],"best_oa_location":{"id":"doi:10.5381/jot.2009.8.6.a5","doi":"https://doi.org/10.5381/jot.2009.8.6.a5","is_oa":true,"landing_page_url":"https://doi.org/10.5381/jot.2009.8.6.a5","pdf_url":"http://www.jot.fm/issues/issue_2009_09/article5.pdf","source":{"id":"https://openalex.org/S172897590","display_name":"The Journal of Object Technology","issn_l":"1660-1769","issn":["1660-1769"],"is_oa":false,"is_in_doaj":false,"is_core":true,"listed_in":["cwts-core","dongbi-d","jufo-1","norway-1","poland-70","russia-white-list-3"],"host_organization":"https://openalex.org/P4383699229","host_organization_name":"EtH Zurich","host_organization_lineage":["https://openalex.org/P4383699229"],"host_organization_lineage_names":["EtH Zurich"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Journal of Object Technology","raw_type":"journal-article"},"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2078623319.pdf","grobid_xml":"https://content.openalex.org/works/W2078623319.grobid-xml"},"referenced_works_count":55,"referenced_works":["https://openalex.org/W59481368","https://openalex.org/W89731140","https://openalex.org/W177779199","https://openalex.org/W202283534","https://openalex.org/W206348627","https://openalex.org/W389247012","https://openalex.org/W566699463","https://openalex.org/W1484366641","https://openalex.org/W1507539036","https://openalex.org/W1507693023","https://openalex.org/W1510878057","https://openalex.org/W1513612082","https://openalex.org/W1521422937","https://openalex.org/W1549891226","https://openalex.org/W1559059528","https://openalex.org/W1563525108","https://openalex.org/W1567903304","https://openalex.org/W1583092647","https://openalex.org/W1587194799","https://openalex.org/W1595551119","https://openalex.org/W1678718051","https://openalex.org/W1984843285","https://openalex.org/W1986739412","https://openalex.org/W1989258377","https://openalex.org/W1993246012","https://openalex.org/W2001410133","https://openalex.org/W2014220905","https://openalex.org/W2016149029","https://openalex.org/W2016611083","https://openalex.org/W2022373880","https://openalex.org/W2037683408","https://openalex.org/W2060893192","https://openalex.org/W2084159708","https://openalex.org/W2089241138","https://openalex.org/W2089674328","https://openalex.org/W2090617086","https://openalex.org/W2098884586","https://openalex.org/W2111609583","https://openalex.org/W2120214216","https://openalex.org/W2132055297","https://openalex.org/W2133420304","https://openalex.org/W2151558937","https://openalex.org/W2161298074","https://openalex.org/W2168273839","https://openalex.org/W2189498702","https://openalex.org/W2318815169","https://openalex.org/W2484530857","https://openalex.org/W2755771550","https://openalex.org/W2911428703","https://openalex.org/W2968743833","https://openalex.org/W4236937290","https://openalex.org/W4254825663","https://openalex.org/W4256107736","https://openalex.org/W6634846636","https://openalex.org/W6684877492"],"related_works":["https://openalex.org/W7098184722","https://openalex.org/W2755771550","https://openalex.org/W2149091540","https://openalex.org/W7098359606","https://openalex.org/W7095646522","https://openalex.org/W4250938480","https://openalex.org/W3127075129","https://openalex.org/W7097503408","https://openalex.org/W7095486801","https://openalex.org/W2389919171"],"abstract_inverted_index":{"This":[0],"paper":[1],"is":[2,153],"a":[3,17,65],"synthesis":[4,152],"about":[5],"why":[6],"and":[7,46,51,77,88,116,137,146],"how":[8],"some":[9,94],"functional":[10,149],"programming":[11,24],"(FP)":[12],"can":[13],"be":[14],"helpful":[15],"from":[16],"program":[18],"design":[19,39,52,111,121],"point-of-view":[20],"within":[21,41],"mainstream":[22],"object-oriented":[23],"(OOP).We":[25],"first":[26],"introduce":[27],"criteria":[28],"to":[29,110],"ensure":[30],"that":[31],"FP-oriented":[32,161],"features":[33,162],"give":[34],"an":[35],"effective":[36,160],"functional/method":[37],"granularity":[38,112],"level":[40],"OOP.Next,":[42],"we":[43],"list":[44],"up":[45],"discuss":[47],"the":[48,81,96],"general":[49],"techniques":[50,127],"consequences":[53],"of":[54,80,83,95,98],"having":[55],"such":[56],"FP":[57,100,126],"capabilities":[58],"in":[59],"OOP,":[60,103],"i.e.":[61],"code":[62],"abstraction/factoring":[63],"at":[64],"function":[66],"level,":[67],"generic":[68],"iterator/loop":[69],"implementations,":[70],"operation":[71],"compositions,":[72],"sequence":[73],"comprehensions,":[74],"partial":[75],"application":[76],"currying,":[78],"reduction":[79],"number":[82],"class":[84],"definitions,":[85],"name":[86],"abstractions,":[87],"function-based":[89],"structural":[90],"compatibilities.We":[91],"also":[92,140,168],"stress":[93],"difficulties":[97],"blending":[99],"constructs":[101],"with":[102,155,172],"by":[104,169],"pointing":[105],"out":[106],"potential":[107],"problems":[108],"related":[109],"mismatch,":[113],"architecture":[114],"non-uniformity":[115],"datatype":[117],"incoherences.Several":[118],"classic":[119],"OOP":[120],"patterns":[122],"are":[123],"analyzed,":[124],"since":[125],"make":[128],"alternative":[129],"implementations":[130],"manageable:":[131],"basic":[132],"cases":[133],"like":[134],"Strategies,":[135],"Commands":[136],"Observers,":[138],"but":[139,167],"Proxies":[141],"(using":[142,148],"functional-based":[143],"evaluation":[144],"control)":[145],"Visitors":[147],"data-driven":[150],"programming).This":[151],"illustrated":[154],"C#":[156],"3.0":[157],"which":[158],"offers":[159],"-based":[163],"on":[164],"delegates":[165],"-,":[166],"using":[170],"comparisons":[171],"other":[173],"cross-paradigm":[174],"languages.":[175]},"counts_by_year":[{"year":2020,"cited_by_count":1}],"updated_date":"2026-11-04T10:54:05.112534","created_date":"2016-06-24T00:00:00"}
