• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Clojure Intro
 

Clojure Intro

on

  • 824 views

Brief Introduction to Clojure

Brief Introduction to Clojure

Statistics

Views

Total Views
824
Views on SlideShare
824
Embed Views
0

Actions

Likes
3
Downloads
15
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Clojure Intro Clojure Intro Presentation Transcript

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