Clojure - Revenge of the Verbs

4,062 views
3,898 views

Published on

Published in: Technology, Education
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,062
On SlideShare
0
From Embeds
0
Number of Embeds
91
Actions
Shares
0
Downloads
66
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Clojure - Revenge of the Verbs

  1. 1. clojure “revenge of the verbs” tim@lossen.de 2008-12-04
  2. 2. LISP dynamic, functional, lazy _not_ object-oriented compiled (to JVM bytecode) on-the-fly or ahead-of-time
  3. 3. (def fibs (lazy-cat '(0 1) (map + fibs (drop 1 fibs))))
  4. 4. Syntax
  5. 5. Nothing nil Booleans true false Numbers 10 22.31 2/3
  6. 6. Strings ”foo” Characters a space newline Regexps #”[a-z]+”
  7. 7. Comments ;this is a hack Symbols foo namespace/foo java.util.BitSet Keywords :foo :bar
  8. 8. Lists (a b c) Vectors [1 2 3] Maps {:a 1 :b 2} Sets #{:a :b :c}
  9. 9. Semantics
  10. 10. literals evaluate to themselves vectors and maps are data symbols are resolved non-empty lists are calls
  11. 11. calls (operator operands*) special forms def if let fn macros and defn time functions + = str println large sequence library
  12. 12. Concurrency
  13. 13. persistent data structures “state - you’re doing it wrong” lists, vectors, maps, sets ... structural sharing
  14. 14. Vars - thread-local Refs - transactional Agents - asynchronous
  15. 15. Links
  16. 16. Project http://clojure.org Presentations http://clojure.blip.tv Book “Programming Clojure” (beta) http://pragprog.com/titles/shcloj TextMate Bundle http://github.com/ nullstyle/clojure-tmbundle/

×