Roman Obukhivskyi

About Clojure
Afterword :)
You can do everything

❖

JVM

❖

CLR

❖

Javascript
How to start
❖

http://clojure.org/

❖

http://www.4clojure.com/

❖

http://leiningen.org/

❖

http://clojurescriptone.com...
http://www.clojure-toolbox.com/
Dev environment
❖

Good
❖
❖

❖

Emacs
IntelliJ

Kinda geek
❖
❖

❖

Vim
Sublime Text

Others… (Eclipse, Netbeans…)
3 basic questions

❖

How?

❖

What?

❖

Why?
HowTo pattern #1
Fun with code (Quick Sort)
❖

APL: qsort ← {1≥⍴⍵:⍵⋄e←⍵[?⍴⍵]⋄ (∇(⍵<e)/⍵) , ((⍵=e)/⍵) , ∇(⍵>e)/⍵}

❖

J: quicksort=: (($:@(<...
Some facts
❖

Typing: dynamic, strong

❖

(Almost) no syntax (S-expressions)

❖

Lisp-1

❖

Persistent data structures

❖
...
❖

(list 1 2 3) ‘(1 2 3)

❖

(vector 1 2 3) [1 2 3]

❖

(hash-map :a 1 :b 2) {:a 1, :b 2}

❖

(hash-set 1 2 3) #{1 2 3}
❖

LISP + JVM foundation

❖

Simplicity - core of the language design

❖

Best parallelism primitives

❖

Modular librarie...
Best answers to “Why?”
question
❖

http://www.infoq.com/presentations/Are-We-There-Yet-Rich

❖

http://www.youtube.com/wat...
Bonus: little demo
Introduction to Clojure - EDGE Lviv
Introduction to Clojure - EDGE Lviv
Introduction to Clojure - EDGE Lviv
Introduction to Clojure - EDGE Lviv
Introduction to Clojure - EDGE Lviv
Upcoming SlideShare
Loading in...5
×

Introduction to Clojure - EDGE Lviv

389

Published on

Presentation covers basics of Clojure, why it emerged, same basics of usage and provides information on next steps where to take information.

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
389
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Introduction to Clojure - EDGE Lviv

  1. 1. Roman Obukhivskyi About Clojure
  2. 2. Afterword :)
  3. 3. You can do everything ❖ JVM ❖ CLR ❖ Javascript
  4. 4. How to start ❖ http://clojure.org/ ❖ http://www.4clojure.com/ ❖ http://leiningen.org/ ❖ http://clojurescriptone.com/
  5. 5. http://www.clojure-toolbox.com/
  6. 6. Dev environment ❖ Good ❖ ❖ ❖ Emacs IntelliJ Kinda geek ❖ ❖ ❖ Vim Sublime Text Others… (Eclipse, Netbeans…)
  7. 7. 3 basic questions ❖ How? ❖ What? ❖ Why?
  8. 8. HowTo pattern #1
  9. 9. Fun with code (Quick Sort) ❖ APL: qsort ← {1≥⍴⍵:⍵⋄e←⍵[?⍴⍵]⋄ (∇(⍵<e)/⍵) , ((⍵=e)/⍵) , ∇(⍵>e)/⍵} ❖ J: quicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#) ❖ Clojure: (defn qsort [L] (if (empty? L) '() (let [[pivot & L2] L] (lazy-cat (qsort (for [y L2 :when (< y pivot)] y)) (list pivot) (qsort (for [y L2 :when (>= y pivot)] y))))))
  10. 10. Some facts ❖ Typing: dynamic, strong ❖ (Almost) no syntax (S-expressions) ❖ Lisp-1 ❖ Persistent data structures ❖ Laziness ❖ Less brackets than in Java :)
  11. 11. ❖ (list 1 2 3) ‘(1 2 3) ❖ (vector 1 2 3) [1 2 3] ❖ (hash-map :a 1 :b 2) {:a 1, :b 2} ❖ (hash-set 1 2 3) #{1 2 3}
  12. 12. ❖ LISP + JVM foundation ❖ Simplicity - core of the language design ❖ Best parallelism primitives ❖ Modular libraries ❖ Code is data ❖ DSL
  13. 13. Best answers to “Why?” question ❖ http://www.infoq.com/presentations/Are-We-There-Yet-Rich ❖ http://www.youtube.com/watch?v=f84n5oFoZBc ❖ http://www.infoq.com/presentations/Simple-Made-Easy ❖ http://www.infoq.com/presentations/Value-Values ❖ http://www.youtube.com/watch?v=ROor6_NGIWU ❖ http://www.infoq.com/presentations/DesignComposition-Performance
  14. 14. Bonus: little demo

×