Clojure Intro

1,216 views

Published on

Brief Introduction to Clojure

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,216
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
29
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Clojure Intro

  1. 1. Clojure Intro Misha Kozik @mishadoff
  2. 2. Yet Another JVM Language?
  3. 3. Rationale A Lisp  for Functional Programming  symbiotic with an Established Platform  designed for Concurrency                        ­ Rich Hickey
  4. 4. Clojure Philosophy
  5. 5. Clojure Philosophy
  6. 6. Lots of Irritating Stupid Parentheses (defn concat [xs ys]   (if (empty? xs) ys       (let [[h & t] xs]         (cons h (concat t ys)))))
  7. 7. LISt Processing (defn concat [xs ys]   (if (empty? xs) ys       (let [[h & t] xs]         (cons h (concat t ys)))))
  8. 8. LISt Processing (defn concat [xs ys]   (if (empty? xs) ys       (let [[h & t] xs]         (cons h (concat t ys)))))
  9. 9. LISt Processing (defn concat [xs ys]   (if (empty? xs) ys       (let [[h & t] xs]         (cons h (concat t ys)))))
  10. 10. (+ (* 2 5)      (/ 1 7))  Prefix notation   Do you speak it?
  11. 11. Syntax Code Mode: Data Mode: Special Mode: '(1 2 3 4) (+ 1 2 3 4)  (def a 42)
  12. 12. Quick Tour ● Value ● Function ● Scope ● List ● Vector ● Map ● Set ● Functional Features ● Automatic Promotion ● Destructuring ● Loop/Recur ● Time ● Memoization ● Lazy Sequences ● Threading macro ● Meta ● IO ● Regexps ● Record ● Protocol ● Type Hints ● Multimethods ● Exceptions ● Macro ● Concurrency ● Java­>Clojure ● Clojure­>Java ● Bonus!
  13. 13. Demo jug.clj http://goo.gl/oI7joI
  14. 14. IDE
  15. 15. IDE VimClojure LightTable Counter Clockwise Enclojure La Clojure
  16. 16. Infrastructure ● Leiningen, Clojars ● Ring, Compojure, Enlive ● ClojureScript ● Pedestal ● Seesaw ● Datomic, Korma, Carmine, Monger ● Overtone, Incanter ● core.logic, core.match, core.async ● AppEngine, Heroku ● Write your own wrapper!
  17. 17. Getting Started ● Official website ● Clojure Docs ● Try Clojure ● 4clojure ● Comprehensive clojure overview ● Planet Clojure ● Learn Clojure ● StackOverflow questions ● GitHub repositories ● My Blog
  18. 18. Books
  19. 19. Q?

×