Clojure for Java developers : transition smoothly from Java to the most widely used functional JVM-based language - Cloture /
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham, UK :
Packt Publishing,
2016.
|
Colección: | Community experience distilled.
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- Cover ; Copyright; Credits; About the Reviewer; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Getting Started with Clojure ; Getting to know Clojure; Installing Leiningen; Using a REPL; The nREPL protocol; Hello world; REPL utilities and conventions; Creating a new project; Project structure; Creating a standalone app; Using Cursive Clojure; Installing Cursive Clojure; Getting started with Clojure code and data; Lists in Clojure; Operations in Clojure; Functions in Clojure; Clojure's data types; Scalars; Collection data types; Summary; Chapter 2: Namespaces, Packages, and Tests
- Namespaces in ClojurePackages in Clojure; The classpath and the classloader; Back to Clojure namespaces; Playing with namespaces; Creating a new namespace; Working with namespaces on the REPL; Testing in Clojure; Testing from the command line; Testing in IntelliJ; Summary; Chapter 3: Interacting with Java ; Using Maven dependencies; Clojure interop syntax; Creating an object; Calling an instance method; Calling a static method or function; Accessing inner classes; Writing a simple image namespace; Writing the tests; The let statement; Destructuring in Clojure; Sequential destructuring
- Associative destructuringExposing your code to Java; Testing from Groovy; Proxy and reify; Summary; Chapter 4: Collections and Functional Programming ; Basics of functional programming; Persistent collections; Types of collections in Clojure; The sequence abstraction; Specific collection types in Clojure; Vectors; Lists; Maps; Sorted maps and hash maps; Common properties; Sets; Sorted sets and hash sets; Common properties; Union, difference and intersection; Applying functional programming to collections; The imperative programming model; The functional paradigm
- Functional programming and immutabilityLaziness; Summary; Chapter 5: Multimethods and Protocols ; Polymorphism in Java; Multimethods in Clojure; Keyword hierarchies; isa?; parents; descendants; underive; A la carte dispatch functions; Protocols in Clojure; Records in Clojure; Summary; Chapter 6: Concurrency ; Using your Java knowledge; The Clojure model of state and identity; Promises; Pulsar and lightweight threads; Futures; Software transactional memory and refs; Atoms; Agents; Validators; Watchers; core.async; Why lightweight threads?; Goblocks; Channels; Transducers; Summary
- Chapter 7: Macros in Clojure Lisp's foundational ideas; Macros as code modification tools; Modifying code in Java; Modifying code in Groovy; The @ToString annotation; The @TupleConstructor annotation; The @Slf4j annotation; Writing your first macro; Debugging your first macro; Quote, syntax quote, and unquoting; Unquote splicing; Gensym; Macros in the real world; References; Summary; Index