Your SlideShare is downloading. ×
Clojure Intro
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Clojure Intro

672
views

Published on

Brief Introduction to Clojure

Brief Introduction to Clojure

Published in: Technology

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
672
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Clojure Intro Misha Kozik @mishadoff
  • 2. Yet Another JVM Language?
  • 3. Rationale A Lisp  for Functional Programming  symbiotic with an Established Platform  designed for Concurrency                        ­ Rich Hickey
  • 4. Clojure Philosophy
  • 5. Clojure Philosophy
  • 6. Lots of Irritating Stupid Parentheses (defn concat [xs ys]   (if (empty? xs) ys       (let [[h & t] xs]         (cons h (concat t ys)))))
  • 7. LISt Processing (defn concat [xs ys]   (if (empty? xs) ys       (let [[h & t] xs]         (cons h (concat t ys)))))
  • 8. LISt Processing (defn concat [xs ys]   (if (empty? xs) ys       (let [[h & t] xs]         (cons h (concat t ys)))))
  • 9. LISt Processing (defn concat [xs ys]   (if (empty? xs) ys       (let [[h & t] xs]         (cons h (concat t ys)))))
  • 10. (+ (* 2 5)      (/ 1 7))  Prefix notation   Do you speak it?
  • 11. Syntax Code Mode: Data Mode: Special Mode: '(1 2 3 4) (+ 1 2 3 4)  (def a 42)
  • 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. Demo jug.clj http://goo.gl/oI7joI
  • 14. IDE
  • 15. IDE VimClojure LightTable Counter Clockwise Enclojure La Clojure
  • 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. Getting Started ● Official website ● Clojure Docs ● Try Clojure ● 4clojure ● Comprehensive clojure overview ● Planet Clojure ● Learn Clojure ● StackOverflow questions ● GitHub repositories ● My Blog
  • 18. Books
  • 19. Q?