On October 23rd, 2014, we updated our
By continuing to use LinkedIn’s SlideShare service, you agree to the revised terms, so please take a few minutes to review them.
“Lisp is worth learning for the profound enlightenment experience you will havewhen you finally get it; that experience willmake you a better programmer for the restof your days, even if you never actually use Lisp itself a lot." Eric S. Raymond, "How to Become a Hacker".
“LISP stands for: Lots of Insane Stupid Parentheses” Anonymous
The Truth about Lisp
LISt Processing LIS● Second oldest high-level language (first is Fortran)● Code as Data (Homoiconic)● Perfect for Domain-specific languages (DSL)● Exploratory programming
Clojure● Lisp in JVM● Concurrent programming● Dynamic Development (REPL)● Lazy sequences● No side effects (almost)
Clojure vs Java code● Side-effect free ● Error prone● Easy to (unit) test ● Not so easy● Lazy collection ● Only one element● Any element ● Only with chars● Slower ● Faster● Data manipulation ● If/for/while code● Exploratory ● Design Is Law
Clojure is a functional language● Functions are first-class objects● Data is immutable● Functions are pure
● Simple: no loops, variables or mutable state● Thread-safe: no locking● Parallelizable: map/reduce anyone?● Generic: data is always data● Easy to test: same input, same output