Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

The Clojure Workshop: Use functional programming to build data-centric applications with Clojure and ClojureScript
The Clojure Workshop: Use functional programming to build data-centric applications with Clojure and ClojureScript
The Clojure Workshop: Use functional programming to build data-centric applications with Clojure and ClojureScript
Ebook1,513 pages9 hours

The Clojure Workshop: Use functional programming to build data-centric applications with Clojure and ClojureScript

Rating: 0 out of 5 stars

()

Read preview

About this ebook

Learn how to solve problems using Clojure or ClojureScript and become a confident functional programmer with the help of engaging activities and challenging projects

Key Features
  • Master the tools and patterns of the Clojure and ClojureScript ecosystems
  • Learn the fundamentals of functional programming and immutability
  • Apply your skills practically by developing a range of scalable applications
Book Description

The Clojure Workshop is a step-by-step guide to Clojure and ClojureScript, designed to quickly get you up and running as a confident, knowledgeable developer.

Because of the functional nature of the language, Clojure programming is quite different to what many developers will have experienced. As hosted languages, Clojure and ClojureScript can also be daunting for newcomers because of complexities in the tooling and the challenge of interacting with the host platforms. To help you overcome these barriers, this book adopts a practical approach. Every chapter is centered around building something.

As you progress through the book, you will progressively develop the 'muscle memory' that will make you a productive Clojure programmer, and help you see the world through the concepts of functional programming. You will also gain familiarity with common idioms and patterns, as well as exposure to some of the most widely used libraries.

Unlike many Clojure books, this Workshop will include significant coverage of both Clojure and ClojureScript. This makes it useful no matter your goal or preferred platform, and provides a fresh perspective on the hosted nature of the language.

By the end of this book, you'll have the knowledge, skills and confidence to creatively tackle your own ambitious projects with Clojure and ClojureScript.

What you will learn
  • Write idiomatic code with Clojure and ClojureScript
  • Understand and use common patterns and best practices
  • Experiment with code and interact with programs using the REPL
  • Learn the fundamentals of functional programming and immutability
  • Master concepts including mapping, filtering, reducing and recursion
  • Structure and build your code using namespaces and Leiningen
  • Write unit tests to validate application behavior
  • Simplify your code and improve efficiency with macros
Who this book is for

The Clojure Workshop is for anyone who is curious about functional programming and wants to get started learning Clojure or ClojureScript. Prior experience of another programming language, such as Java or JavaScript, is recommended, and will help you grasp the concepts covered in this book more easily.

LanguageEnglish
Release dateJan 29, 2020
ISBN9781838825119
The Clojure Workshop: Use functional programming to build data-centric applications with Clojure and ClojureScript

Related to The Clojure Workshop

Related ebooks

Programming For You

View More

Related articles

Reviews for The Clojure Workshop

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    The Clojure Workshop - Joseph Fahey

    ;P`book_preview_excerpt.htmlսrF.*hS)RJx+[G=*VRݦZLA&"3QDYLc{~}}~#L TilwF]$@_?wO?9|rO__e77<|{vݷEg˩ '٧*7,*<ޟ?s3*1u?uo cLJf/^ǴaĔUtٝe3: fC,sz8,MP 7y\ImdGafe0BY*!o8< ~ 3/é!6f3` ee=46'3Ұip1 블]1K^o(ZziFӔ{>J3x^h/B 1"gyvEK&Ti\o˜&ÏU+N42xOճh>O=R~Ȧ4גHmS{D>bbՓ}UVBZp^WaN*.b!2-(8 ^7eFi>a4"W#щ] >u}px4!:uϲ0hj8.Y ~63eB?ϪQf~m&aN<^tAacEg&~[f77<| f1C&Cb7E.>9qp ~E[bj90F|&Wtë&.19prǜ.6Zams*AerBof=şN惓C/FC |M7ʑ ^VHͫ{H@ G<4ജeŜt.1!ϋ8Vd9PDj>WaOnG', /8/7`>~EvľI4;OcZBɲ;\l袚 7~כ6I iT@z&-0oL!:t/R$ !-Z6fp_)O"#l]J0/ }ؠwÙ){HL$ 3;]|c-Gu^k&#Mvi: L #{o䤭dZ:X?{E)sZh YV"QꖔmD'f%NTn3Mr&UqlzA-ѿ@!~UIH 8s}e1HY8mO4:hĻqlyG1>LqmҘxgo-f)?]YH\:یE7T&_Xs{SҠE.E2nml1SjV~_4EH(&oV|6'Ø!&(=.0߷9C:VVRG<]9(= BUuxϪ6"fI@Mf}w1BۤDRJhSLH4Obw'n,fO xbf&zVt!#͂X-> $yVH7&p9{ڷa $Ҙq,j|?{@L4~ 34S=ɖmdکlvVm(Y6.-cD>J40koX,fn;enP:1r}em`yE/l2/T?-$=^N$+[eeHnvlapPz'pfyxHfM>}ebmRD}8O'0NU™}2/!y^J9]19OaCtg{G-?Hz'Y,2Q6F1]z,UJqVr)vs YTC/3r>N+{=\I |=γ[`չ;ce:_:H )zkk 4 Oa.S}3=j0aˍޘ&TH|b`#<2 'ڷW;yFT{WNǗцX> Ҕ`C0IG?ס$?.Fy^;uˁHF/а:w/Inxj=(Ű5Րjgx4˵}G̝xoM!gbY[ƊSow'a@-/b GxSERsid~!;O7='L> {ў ++C.d=k1ytHKA9lD64*E! oD̡+ǣA1赲G{? # n-{DX'`m3ȶ"Ab^;ȵ5H z9L fbM=RXئ F1#-\BpHs=x'51p\~I>"*G-%ƒ@FY^o$͓[%j t8Y ݗUƇ8g7QU9Es$]mv}e9~ImOP-Rxb]d&QtEhp܆"$.ltdz`j /m.NJ+x=}^ރPRf(]8*\!MMܘ~Sӷ?_{u@j/ܛeȜ 7}~]˒2CH8ˊ(D}jkKMYAYdo;~r #wY*ƌz*. Vѐy4͂D>6F.OXwN8T듵sƫg7=tsyA!j|Waͺ" @ҘgR${o "[MtYRɝݘc/-S9pv[pPS$I6;E9}GtԒ8ú6:>Г5""#a`),Ў w(.R l|}9Kmƀ 6Wjo]5PgϾ$,wv[I8%gz3_ĶfpE\<EiI}Rb-7!,>aZ㼄 .R*bEmeqi'lFO-Hs*N<7Y({lgUYr~[X(Gͥ_4NܤmfԬ[3 &>2j{I"(W杊pFsT ]TazAsŌ0q_*tHķkkP=qNKt PBMMNi=Fq [`KY\\ $Aj/xHs֋Y?k#aI)QGA({a 0 kک񭙵_8BB{`R1v^`AYŬD`(7ȵ%FY:>1&1İG>%b ;<:P/`^IN*с˶uDH3 ڌD|^4iL3Ɣ_*4t7t@Q+Cze&.,Tx6.*?s͍$޹̀>mx9 sZ<9 "Ff0|~ H49p  h;E@+W9* )1EAğy#31&~_fU;zƾ{r?[3a"#k1bD;" ~6?ncA9c6łfqjH?sE^2 1=-ϰ7ttXvHH¼nJ[pRr))~_b3mՑ3sr,ZAx 03+F=#E;ː$e7tgCV-dP;}ZxgA3DR`x0b9L3ODlHt[s|쉒d(UtHʧtgAj`@K7I,p@`/Q@RW5 ܳ$9-k/"nS!yk@^a#F#3Z,X沒Hiqf7V-q"}q-_Αc}ʝk>&rf(MXp22`lt3鷬coYG֌"c!@6" ᠃-TGɲ+#hœJ{-6nDZ6Cw5Er-/J:tXѦ$Y.wT-^h2 ?ݲ, 5Ud5_͌ C-y^1n21I~v']WO >ҿо'$Y:(DDj^p.t!>Ƌib{XJS5_$`U=VVD^M͛\?M`zi7u.&~|gmT1pq Y ;0ڊX@)#㵤X%Ǭ&a?5a%#J |TfVckFZ:uYkьTqhOԇBO< -94kΗ~eB-0c6n8yS'vzy`;L2XqLIED/h('SڏbO>SY0~5sL'IUj]8 !˰|ˮ=ـ Mڂ B3J~XҵPVW(.k޳~=<UL:$"cW ]f$(>5 Jb'V˿ 4 % sgil ʽ(ᗓ N؛8n ^8^R d,Uن+MZLDv`WI7BgTsV0X_0{.W@ej&vn0֔(YyOjժ}&w•eԺcS(_o/Gq ~m#^=95TeYQDzڼː)wG*Ʈڌ+,7"MpP3U\@y81?Ɋ @h/տEl>EMBG"71DE~k$ wL4z nmի vU[aUp꜅yЏGI_E,ňTt܆Pi70edglI;<¬Ï9)=Аw2T~Ê*! w*Vx(63% KW; vmR%o9\/=O/l%7n.Q8t vZEA:lea&.:l:X|w |<_ڧsCbK ZpYdW?\GdaTvl]Wڵr0.I$ 5{$p>+L~Ip/ǮA&U_B3r.ZtsŸS8/ҘNO)Ɠi6ɐ='!K9:.C23%RDl 4ȃAS翐=̮M'?\셑\nw䬆sgKYuBYqy4NZ!c>`qAX䮣pM@oq}5QhՖinx>9:!+gWCnh` g|{u\f3AS6d<6&7ژpcň;~Z<Ó'prc%jnҫ,az^fUhvm g?eUzqB<;z-ww{r{V-j.G߸-xܶ͸"!lkDÒiY΋hQto*b(63>{!nM^O 7]tni55>TQ6S72mM;zsڪ!NKSHiIAD{ :6f6q^ji'LXxRj"Dk 6>#,G;Ή=$#fx9">p9Q7c==n }43v WFX븓f4f 9'̋mrNԋF p+ -ifqObݫC`5uclWY#tj07qjߵ1^#2N$,g`5 Oh*d {?xTg}MXG<Ѣye3n74 GB-g$^ND9.ѻ((5]du:gECf%iM@^0#IRl.@I`&̙b"K"ud%" p2N%#JoV@/]5"[6Wbϛml"0[Gk=OGvE#ݮyv0\g@=;( ;j)bi!,7 W;QYIX]6?U#/ݒQUJ(,L2Hz,Pf)PQCX'17oru?5,)FdX C>>tԼE6rOI-kRp1 "\hHUygBǩd8*FuLi6._xHϿ}X\ЁOٔZ9T &̙0\>`Up פi#M+p6Si e! ZK R, }= 83KҐ\)RpaA7DaDr1tK\p B#6Ia#N2)h E' v"I~ʆjfۥ40pfR99Owd#=P;:eN%ajW~6Gr&T k0MKV< #$<@1O-oljk#Å̟#Fj]ձ66|; _bVTvFa{c2ڦ.$-;h :6.5vk"ٴznV# eon *kvlL4D?{jPFR,B:3#Qd)Nvbj v~#)GuDI뒎BVDεRcUȁ6=K+#=ܦp٢@'#6(5U@;KB W_ϻ{@H&IȖ&Uu6\HO;M1/jaDrH#TMR`g9MʌL-HӪQ v5o;U#~mhD\_6&]GzejĹā wqZ, SG'CQw`mgwذlb%aq0f7Wd>|o2gNnvVǚ8ªTI`UjInPj#3HHгfU 7gsvP:kuܘ{Z8<,J"m̲'Y À.?aU~vVw[-:SD"QۚV:XLx&>yDMK"B91J>6KK%ވhu]6OdٯEE*ơ ɳ$<ǤTQ޸9?TD|Ζ 3 凶ׄk٭e"bQfuҟf i0a$viGQ_ȑ|UK4y.6o4o?7:R?G[ ~i]p%q(CQJ#s*MQVa?WY 傾],P[M1|[ }suvT cݻt*mvfnu손wM׷?1XY~L:: RPB. "N,v(oiM! %+f;0qp/*bo>~A_ _g[6}ůy> kw3vĥ:;EA"ߨnY}1W|37Gr&RNJto] +#b698Vw(D\n1(`i+DUh2XT!%UWbnԂA1eo ѪwK+j.O* ]pE! X&Zν b)c&גzCdRrVdT 7RXGֻMMtgXy:[m7Q{2W7R:͛]y,\.ZY+z @L:M)$? zXƫ-^IQ[>*r[pPmU9/zվr992"ؿ k.="2x?,SX^̍̇K ˗5k^#t0{gkAp1JM s?xESmImFF0ml%׹bEIUS5 X`R6|7[q6)N"pEG.+őtW n{*51XKMY$@^x# Dz/I V ڮ/mͲ{ǪJ}%v/^"!S{/l`MhUӢBiE6*I<-M/zw԰ L_zXL}YNUbPwQdG]_s?jADt"}3/1+!'קp 1/׿weI!JwVl]Eߞ֊qK2qc}cEp5Rv+t2BCį<ο:)kqEݯJHƥX g1U(s\5.Cˎdf`}LjWI tZκ] Ue/x6/RFFKiӗpTШEIX<&+{_-<g"QۆM9T˫ qrU~_Q[9/l jlV FhD 3r{ E %*:º<6Ls.F7߬7; Z=DcQw#_p"];:7[`'gKx2Ïɓַ6zuBp4bkuJ"^jWkvJY1 v Mn]s8]Jd\^aYݓm&(|3NG^nme&b*FvX 톇S蝫[ȡCۉ&|jөpdH9edZmպ)t+#qg#5n'V/Ģ[#栯Y嫫S$G9&%mq6c!2P(b+!r#N@B+ۣK4Cӌ c4J#jg11=@,h[4ɽqv%zy.'BQeTtfƯHt@a/mLٳGuy%?׉I98 ѷ }C kľvc:(*8x3n^M&X$eױ>!"/_׋'VOYp0ɳ^g>],GȴvNn|f籋ts yP2O;41gDۿ^G/6|Rxv ^R޴>(DV8V`ݏa_+h̀?|#(O&7}L?| =D6NG>~zpsh0ޟqt560_/~xחdww sN2e&Ǐ#<2`[ɮ>#`1g$B?#9W+;+~G'mIćdOp۳^/5ټѶɃ??zt'RQvƏ匾7E26N~K;ӗ\,.3NnK^:o/Rx࿇?*艩wرc7 _uPs9ˍ ߂`tLdQ bBb N8jG Pԓ8n 8M2N\ tgL`:w{_}u7?fR=E|7Zh偤Щ[`9>ZAu);^y.'s~d/I姎/)WW8?;;CQ\!W?]c4e_hUuح۔ₚ eq8mEYK./9^ 8Q۽JgL喅R zFUxAՆY9#kYLX1ĩf?pvMЛHu@[/[ ^kAx ~F/fGP14n Fl^.4s?A}q_f<~k"k}wӇ딙>i6rą_y͛|ͮ+_ꄯ%8%w-6]wejnֽ#zbA#x%9 R%UaK?^~q1-1u \qz#1|iI.v$c MCC1O\Ѽf5X.GrF4$g^k.aStp;] q.0LOY+SoL#nJTe=pfM%|~8%޹a=4_sgU}fn,?ӝICWf_@q"Bk(k &Il}}lu }'Ic ΆA8%`.w̠8 ݔ'}[za`2U;{Xb~TT a/w " &`ǔ G)9ڕ~Y`OK9aJ4&΍Ԭ:< ݝLH},I7uKw9 2[ NZ֜7'uxDt$U ho}v .t .CR\Tx ihzRI#?Ľ }Rs#CH:ໍK%$ڎ_1v"4#qT3=זư+F^4YpXon?Z"Y%k ݂P X{=V f6bjP6^5#]ZZ5ƓvHXM*f zk޸z:`]9ZvY4y2b2c(BUZjV~pAsBc,zsn$_Ѣ%w]c͙ MMlu?AɽusK޼ZL/`eq:O"(^U~?.ի~ H~m  K)}䔒@ 7=w[0<m|P8iW#E#{CPX»)tL,ӡ6NPk҅8H*$0;Afkk:r`uG ?xpxt{/њb0ܜǴl7~:¡ΆǑ A{Z~+dE&0EF XdI+5a9!d?pkXlL;cfp@P{{>&f:d4x=zt=8 TAgPp>CmLGo eu1K)Ucx|J FTuʤi<&;H9?_QX =W[8&5]X2FȬ^:\J0͘Ygjߗ:"R*MZw?bxؑF pPQ\1 3IM id]G6=I:Kk/Z{QԨtMvx NeB915$Q#׾ FNQTfδ.=Fj!<(humۯ,奝|$) ^`(G9 <(#/% G]K`4#ENtܒ+U@ZcB@XlBCOY_\0#|bl w:^و+ĪXw[/vzDLC#c2weۃ5!3/a.5bxuUR>˩\X1j䗊I㙬y.pVg2􄎤bvU$6!IAz n.B&`CI>=AlJL1R¢l<5}xnbbKMD0V|knaS'`ZA?e0Mg &}8|B6+U9DK8F`ʿ۶F,>K6ч,ѫ%ig1@bRs20mPo8U tXm*(l![6mAlH7ʁ~RQFc#![.'OFg%mNLlh P1ǼKkzL,2tr v^JH.`J 1ਖ਼Zɥ0W|(" fuS!brzϲ,A& {K(Dxh!Fv0@Ima<{͌8(w-fyByX-$G((K!is2BU yY/tNDwe v|!/?fPE (-!Zm{WVWv-j`TX/^1J0}]8* {dQ29\"G)'BEԫ|rY Yꍵ/rH{V{(+)T42T+d]6XPcjR4K1ԪE䙟tto7D>YNJwFTA2K+qfk j̔u k*}KoGz׉Y6* ֬+6.ʄ )yl"r pp -T{"\uW'8GΫ)>խ#:J Y`f]WIc (JY H`@5WփbMVmͺLjZ~ӌў7kp{\tl0iυUkYsJkdKI=T!j7\9)R77p*.nUנbRh6RGf魺MlݟZZMe,g o9PK+ҕL>Ϻ{)Ȇ\\3ȒH]1!j@<*g=DM_o][Fn4 47W3)2ct ; >ث[Ƒ>I'%2{c)>ϦϓZbyHqꯖ@ceRfIGvVjǎ@:F'Ge#-6FqWQy9 FIo{3(RK~2. _t" n:_tc.Ru5H`{wLRݮǏS 3⹛PM7ee!X؜q0ʞ\nO=8>^L/2TMM7?!F [/rJ̈狳8Pi,-9I(rPna)ϔraUEaxu$Ltȃ3Lu~-ҜI6R=i0E/tkh5X(= @YMei|h]譑t9+%Nc-~z^| LJ+5k/,~<2W#w^鄾5@.(kgtq%e\A c_,S%.yw&Ն"DWe#6qȬ"S,Ea zIWo(Fwuqb6E%mlH>u;i]\/!E8ޭY۷ nU^(c'{px7nZh 5v{daSunzIW~O~feE۰q^(:9f omm^ n"u':IÍ7GSQ".eaмkC@5+mx5/!"fLT.QgV6"sFBRQpWrs.űW$o"@BZn@/_a'%P5IT 3 zWTE[?fgT]&T[b~$n?ۃ{v U0Tw4Hy=_ooA捡bd!ui|+֛HZerZCY.w)[J֭Ts5G/׊ҶYb8x^к mϩۭ}R&Yq p8ujFں@R.\ gz!ybۍDˤU~ 6o6twN<;mGv8?\jyD~SZ rm e3yez5 Pli2ĸE M=QXCσ.Z@x!DoUJ9kI Eт#Mǰ7QR4U2)v;#2!7&C0#ɦ.hnc׹C8D!l: ScY1)@XI* MjC#5F{*"8p Sۤv~Ǥ5w,6#2rќ[%k ԵJ[rkkn Hsʒ(N+F EJmK!I$[8*;b5[-KU)S`2-% Ejm x.%-;ͪ2eaj@DbduR s y82evgz66lhwHJ IACj!Ҭ>g紨4Z6]nAΜGU%m܃Z~%~nk7֗xБ7$];"wƲ1IꇪV~q w{J]dѤ nHTj<i<"jq1 #RyYMK1f|-ej p.({(VS*#SݡqINx( |9k;+^eSƥ[-]uݜe7/A bkN{W~V<qHfO~[UA-JGGjφ_lѧ~RuNῊo Ȃ:jfO'Aܬ{<}bH PiJLAS}e!W n4*L̎YQ-^TE o*ע-8<az$~qgl/ķ*~=::zB jȿV@עvֱ51/\EE*,+_ s]ws-3Tbu5m~me[كi]n\5p%D$%+iue{=A;$ab2vkPә M\gX{ז#[ 濜L|Cru2o-FHkXINSZ):;q0ړsaGac.25drOʙb0%DOK VqZjV(iN2/I_J$r/ZygʃvE+H+Mz[D.ejӍF<-(MÇ^e+UCml&4LN&g1NM#/lA5:*u*_F(naVkXd[;gӴ"x?~ͽEwlR)|3w]n!.SM7e*ݸU l(mb[85k*5zA:8L+I$0|smS}GZ"n.'}l^+ /[h= *%s"48|Z>N@W)l'# v5hk Ȼ\./쀱V# U¼cD_R K~(Vq2v\Is'~ӑ}N8vJ7˯s"O_~svq:?.8 ޽:;OldKw+ouv[}w|ظJ K`-8/Zwz!t vp':ZF+K1"2*i/XqJc6S1v@;Rih >h>OV͙}m~m}~FWZ7f]7uҺbt?]cD}c i \X.rd-З1 KBM\5o4{F?K!mn?ykS8YPQ^3r,;Q4tH-v/mVfkEvkBv ['{5__ˑt\2;j>ۭRɅy"?4HXSYh{.{xe&_jQ6Itr 3 68HuGۅMܣc &G=dnm$y.s \ȞV05u:j ipt#!$rsN0[ Vԧ#}zۣ]i❘){LrcRѡMBZM}#hjǶc<6 9N1'NqvpFa>2ƺ 8p`2thmjcdqsn70EwOӈ,#@1 v޼==] 4!Li30# (</l)q4⼤-;'q:=^}8ʙL7AgjX]ptpHb`͉=tOh&J9!2YLi3f^"̽fXH-NT3Ŏy;;?==\KފAў"{m\2%2%LF*N;˚o8GO܁ux?\+6DTBbXccv3;uΠ+J
    Enjoying the preview?
    Page 1 of 1