Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Por que clojure
Search
Octavio Turra
September 14, 2016
Programming
55
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Por que clojure
Pontos observados da linguagem clojure
Octavio Turra
September 14, 2016
Other Decks in Programming
See All in Programming
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
150
Domain-Driven Transformation
hschwentner
2
2.3k
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
270
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
AmebaブログはKMPから卒業します
kmars0605
0
180
AWSに止められる覚悟してますか?
morizo_1984
2
530
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.2k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
450
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.6k
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Speed Design
sergeychernyshev
33
2.2k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Writing Fast Ruby
sferik
630
63k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
520
Transcript
Por que Clojure FUNCIONAL
Como surgiu? Criada por Rich Hickey https://clojure.org/ “Realm of Lisp”
[Benevolent dictator] Concorrência Funcional Homoiconicidade 2009 : 1.0 / 2016 : 1.8 λ
Por que eu usaria? Homoiconicidade se dá pelo fato de
que os dialetos de Lisp respeitam uma estruturação homogênea. Lisp (operador ..operandos) //form (funcao parametro parametro) (+ 1 2) (map sum [1 2 3 4 5])
Por que eu usaria? Anonymous functions Funcional (fn [arg] (println
arg)) Nil Punning High order functions Closures (str nil) => “” (map #(* % %) [1 2 3 4 5]) (defn f [x] (fn [y] (+ x y))) Threading expressions (->> (range 10) (map inc)) Laziness (take 5 (positive-numbers))
Por que eu usaria? Multimétodos Polimorfismo em Runtime (defmulti area
:shape) (defmethod area :rectangle ==[{:keys [l w]}] (* l w)) (defmethod area :circle ==[{:keys [r]}] (* Math/PI r r)) (area {:shape :circle :r 10}) => 314.1592653589793 (area {:shape :rectangle :l 5 :w 10}) => 50 Protocolos (defprotocol Foo ====(bar [x y]) ====(baz [x] [x y])) (deftype Bar [data] Foo ====(bar [x y] (println x y)) ====(baz [x] (println x)) ====(baz [x y] (println x y))) (let [b (Bar. "some data")] ====(.bar b "param") ====(.baz b) ====(.baz b "baz with param"))
Por que eu usaria? Macros (defmacro defprivate [name args &
body] ==`(defn ~(symbol name) ~args =====(if (:user @session) =======(do ~@body) ======="please log in"))) (defprivate foo [greeting] ==(println greeting))
Quem usa? http://clojure.org/community/companies