{"id":"https://openalex.org/W593478746","doi":null,"title":"Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM","display_name":"Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM","publication_year":2013,"publication_date":"2013-10-23","ids":{"openalex":"https://openalex.org/W593478746","mag":"593478746"},"language":"en","primary_location":{"id":"pmh:oai:aleph.bib-bvb.de:BVB01-027154502","doi":null,"is_oa":false,"landing_page_url":"http://swbplus.bsz-bw.de/bsz398992134cov.htm","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},"volume":null,"type":"book","is_traditional":true,"indexed_in":[],"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/A5078316923","display_name":"Michael Bevilacqua-Linn","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Michael Bevilacqua-Linn","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":["https://openalex.org/A5078316923"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"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":null,"issue":null,"first_page":null,"last_page":null},"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.9945999979972839,"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.9945999979972839,"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/T10430","display_name":"Software Engineering Techniques and Practices","score":0.0013000000035390258,"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/T12490","display_name":"Software Engineering and Design Patterns","score":0.0012000000569969416,"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.8640000224113464},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.6840000152587891},{"id":"https://openalex.org/keywords/clojure","display_name":"Clojure","score":1.0},{"id":"https://openalex.org/keywords/design-patterns","display_name":"design patterns","score":0.7770000100135803},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"object-oriented programming","score":0.824999988079071},{"id":"https://openalex.org/keywords/java-interoperability","display_name":"Java interoperability","score":0.7889999747276306},{"id":"https://openalex.org/keywords/memoization","display_name":"memoization","score":0.6439999938011169},{"id":"https://openalex.org/keywords/tail-recursion","display_name":"tail recursion","score":1.0},{"id":"https://openalex.org/keywords/command-pattern","display_name":"command pattern","score":0.5860000252723694},{"id":"https://openalex.org/keywords/strategy-pattern","display_name":"strategy pattern","score":0.9929999709129333},{"id":"https://openalex.org/keywords/declarative-programming","display_name":"declarative programming","score":0.7409999966621399},{"id":"https://openalex.org/keywords/type-inference","display_name":"type inference","score":0.4519999921321869}],"concepts":[{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.9377025961875916},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8661192655563354},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8200781345367432},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.7736301422119141},{"id":"https://openalex.org/C190883126","wikidata":"https://www.wikidata.org/wiki/Q132874","display_name":"Lisp","level":2,"score":0.5446509718894958},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5261316299438477},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.4314216077327728}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:aleph.bib-bvb.de:BVB01-027154502","doi":null,"is_oa":false,"landing_page_url":"http://swbplus.bsz-bw.de/bsz398992134cov.htm","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},{"id":"mag:593478746","doi":null,"is_oa":false,"landing_page_url":"http://ci.nii.ac.jp/ncid/BB13908084","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W1589083224","https://openalex.org/W2892985413","https://openalex.org/W134338791","https://openalex.org/W7058765759","https://openalex.org/W7057743764","https://openalex.org/W2566335152","https://openalex.org/W659058295","https://openalex.org/W2532130241","https://openalex.org/W561596683","https://openalex.org/W4239598258"],"abstract_inverted_index":{"Solve":[0],"real-life":[1],"programming":[2,13,71,200],"problems":[3,22,65,216],"with":[4,23,34,47,66,95,257],"a":[5,115,198,207],"fraction":[6],"of":[7,26,118,156,209],"the":[8,77,91,101,107,127,135,148,161,177,267],"code":[9,42,68,232,246],"that":[10,30,60,88],"pure":[11],"object-oriented":[12,28,70,129,162],"requires.":[14],"Use":[15],"Scala":[16,82,105,140,235,258],"and":[17,37,50,83,93,106,131,141,151,173,190,259],"Clojure":[18,237,260],"to":[19,63,81,153,214,227],"solve":[20,64,197,215],"in-depth":[21],"two":[24],"sets":[25],"patterns:":[27],"patterns":[29,59,144,184,210],"become":[31,154],"more":[32,45],"concise":[33],"functional":[35,39,119,136,149,178,183,245],"programming,":[36],"natively":[38],"patterns.":[40],"Your":[41],"will":[43],"be":[44],"declarative,":[46],"fewer":[48],"bugs":[49],"lower":[51],"maintenance":[52],"costs.":[53],"Functional":[54],"languages":[55,87,263],"have":[56],"their":[57],"own":[58],"enable":[61],"you":[62,196,206,211,217,251],"less":[67],"than":[69],"alone.":[72],"This":[73],"book":[74],"introduces":[75],"you,":[76],"experienced":[78],"Java":[79,231],"programmer,":[80],"Clojure:":[84],"practical,":[85],"production-quality":[86],"run":[89],"on":[90,266],"JVM":[92],"interoperate":[94],"existing":[96,230,255],"Java.":[97],"By":[98],"using":[99],"both":[100,139],"statically":[102],"typed,":[103,109],"type-inferred":[104],"dynamically":[108],"modern":[110],"Lisp":[111],"Clojure,":[112],"you'll":[113,124,164,180,224],"gain":[114,264],"broad":[116],"understanding":[117],"programming.":[120],"For":[121],"each":[122],"pattern,":[123],"first":[125],"see":[126,165],"traditional":[128],"solution,":[130],"then":[132],"dig":[133],"into":[134,233],"replacements":[137],"in":[138,147],"Clojure.":[142],"These":[143],"are":[145],"common":[146,167,199],"world":[150],"deserve":[152],"part":[155],"your":[157,229,254],"problem-solving":[158],"toolkit.":[159],"On":[160,176],"side,":[163,179],"many":[166],"patterns,":[168],"such":[169,185],"as":[170,186,261],"Command,":[171],"Strategy,":[172],"Null":[174],"Object.":[175],"learn":[181,225],"core":[182],"Memoization,":[187],"Lazy":[188],"Sequence,":[189],"Tail":[191],"Recursion.":[192],"Each":[193],"pattern":[194],"helps":[195],"problem.":[201],"Working":[202],"through":[203],"them":[204],"gives":[205],"set":[208],"can":[212,240,252],"use":[213],"come":[218],"across":[219],"while":[220],"writing":[221],"programs.":[222],"Finally,":[223],"how":[226],"work":[228],"new":[234],"or":[236],"projects.":[238],"You":[239],"start":[241],"off":[242],"small,":[243],"adding":[244],"little":[247],"by":[248],"little,":[249],"so":[250],"complement":[253],"knowledge":[256],"these":[262],"popularity":[265],"JVM.":[268]},"counts_by_year":[{"year":2020,"cited_by_count":1}],"updated_date":"2026-11-12T12:28:57.059296","created_date":"2016-06-24T00:00:00"}
