Clojure Programming. Practical Lisp for the Java World
- Autorzy:
- Chas Emerick, Brian Carper, Christophe Grand
- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 630
- Dostępne formaty:
-
ePubMobi
Opis ebooka: Clojure Programming. Practical Lisp for the Java World
Clojure is a practical, general-purpose language that offers expressivity rivaling other dynamic languages like Ruby and Python, while seamlessly taking advantage of Java libraries, services, and all of the resources of the JVM ecosystem. This book helps you learn the fundamentals of Clojure with examples relating it to the languages you know already, in the domains and topics you work with every day. See how this JVM language can help eliminate unnecessary complexity from your programming practice and open up new options for solving the most challenging problems.
Clojure Programming demonstrates the language’s flexibility by showing how it can be used for common tasks like web programming and working with databases, up through more demanding applications that require safe, effective concurrency and parallelism, data analysis, and more. This in-depth look helps tie together the full Clojure development experience, from how to organize your project and an introduction to Clojure build tooling, to a tutorial on how to make the most of Clojure’s REPL during development, and how to deploy your finished application in a cloud environment.
- Learn how to use Clojure while leveraging your investment in the Java platform
- Understand the advantages of Clojure as an efficient Lisp for the JVM
- See how Clojure is used today in several practical domains
- Discover how Clojure eliminates the need for many verbose and complicated design patterns
- Deploy large or small web applications to the cloud with Clojure
Wybrane bestsellery
-
To dziewiąte wydanie znakomitego podręcznika programowania dla początkujących, starannie zaktualizowane i uzupełnione o informacje dotyczące Java Platform, Standard Edition 17. Książka rozpoczyna się od solidnej dawki wiedzy o kompilacji i uruchamianiu programu w Javie, słowach kluczowych i istot...(77.40 zł najniższa cena z 30 dni)
90.30 zł
129.00 zł(-30%) -
Dzięki tej książce zrozumiesz bazowe koncepcje programowania funkcyjnego i przekonasz się, że możesz włączać je do kodu bez rezygnacji z paradygmatu obiektowego. Dowiesz się również, kiedy w swojej codziennej pracy używać takich opcji jak niemutowalność i funkcje czyste i dlaczego warto to robić....
Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego
(52.20 zł najniższa cena z 30 dni)60.90 zł
87.00 zł(-30%) -
Oto kolejne wydanie zwięzłego podręcznika dla programistów Javy, który ma ułatwić maksymalne wykorzystanie technologii tego języka w wersji 17. Treść została skrupulatnie przejrzana i uzupełniona o materiał dotyczący nowości w obiektowym modelu Javy. Pierwsza część książki obejmuje wprowadzenie d...(53.40 zł najniższa cena z 30 dni)
62.30 zł
89.00 zł(-30%) -
Oto zaktualizowane i uzupełnione wydanie zwięzłego wprowadzenia do Javy SE 17, przeznaczonego dla profesjonalnych programistów Javy. Przedstawiono w nim wszystkie istotne zagadnienia, łącznie z takimi koncepcjami jak wyrażenia lambda i strumienie, nowoczesnymi konstrukcjami, jak rekordy i klasy z...
Java. Przewodnik doświadczonego programisty. Wydanie III Java. Przewodnik doświadczonego programisty. Wydanie III
(53.40 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Oto dwunaste wydanie wyczerpującego kompendium, w pełni zaktualizowane, uzupełnione o nowości wprowadzone w Java SE 17. Opisano w nim cały język Java: jego składnię, słowa kluczowe i najistotniejsze zasady programowania. Znalazły się tu także informacje dotyczące biblioteki Java API, takie jak op...(119.40 zł najniższa cena z 30 dni)
139.30 zł
199.00 zł(-30%) -
Architect robust solutions like a pro with real-world insights and cutting-edge design techniques. Delve into advanced analytics, machine learning, generative AI, cloud-native architecture, and the key soft skills to excel as a solutions architect.
Solutions Architect's Handbook. Kick-start your career with architecture design principles, strategies, and generative AI techniques - Third Edition Solutions Architect's Handbook. Kick-start your career with architecture design principles, strategies, and generative AI techniques - Third Edition
Saurabh Shrivastava, Neelanjali Srivastav, Rajesh Sheth, Kamal Arora, Rohan Karmarkar
-
Build Your Own Programming Language provides a hands-on approach to designing and implementing programming language features in a simple compiler and programming environment. This book will help you create new or domain-specific languages.
Build Your Own Programming Language. A developer's comprehensive guide to crafting, compiling, and implementing programming languages - Second Edition Build Your Own Programming Language. A developer's comprehensive guide to crafting, compiling, and implementing programming languages - Second Edition
-
Java. Podręcznik na start to pozycja idealna dla każdego, kto chce podjąć takie kroki. W przystępny sposób zaznajamia nie tylko z językiem, ale też z podstawowymi koncepcjami stosowanymi podczas programowania - w obrazowy sposób przyrównuje je do sytuacji znanych spoza świata wirtualnego. Autor n...(41.40 zł najniższa cena z 30 dni)
48.30 zł
69.00 zł(-30%) -
Java należy do najpopularniejszych języków programowania na świecie. Używana przez miliony programistów, jest na tyle uniwersalna, że znajduje zastosowanie zarówno w aplikacjach desktopowych, mobilnych, jak i serwerowych, a także w zaawansowanych systemach zarządzania bazami danych. Z jej zalet k...
Java 21. Kurs video. Od "Hello World!" do programowania obiektowego Java 21. Kurs video. Od "Hello World!" do programowania obiektowego
(39.90 zł najniższa cena z 30 dni)39.59 zł
99.00 zł(-60%) -
Kariera zawodowa programisty jest związana z nieustanną nauką i doskonaleniem zdobytych umiejętności. Jednym z podstawowych etapów rozwoju programisty Java jest zaznajomienie się z dobrymi praktykami programistycznymi, co obejmuje także wzorce projektowe – i to im właśnie poświęcony jest te...
Wzorce projektowe w Javie. Kurs video. Programowanie efektywnych rozwiązań Wzorce projektowe w Javie. Kurs video. Programowanie efektywnych rozwiązań
(39.90 zł najniższa cena z 30 dni)59.59 zł
149.00 zł(-60%)
Ebooka "Clojure Programming. Practical Lisp for the Java World" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Clojure Programming. Practical Lisp for the Java World" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Clojure Programming. Practical Lisp for the Java World" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-14-493-3534-2, 9781449335342
- Data wydania ebooka:
- 2012-03-30 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 2.7MB
- Rozmiar pliku Mobi:
- 2.7MB
Spis treści ebooka
- Clojure Programming
- Preface
- Who Is This Book For?
- Engaged Java Developers
- Ruby, Python, and Other Developers
- Who Is This Book For?
- How to Read This Book
- Start with Practical Applications of Clojure
- Start from the Ground Up with Clojures Foundational Concepts
- Whos We?
- Chas Emerick
- Brian Carper
- Christophe Grand
- Acknowledgments
- And Last, but Certainly Far from Least
- Conventions Used in This Book
- Using Code Examples
- Safari Books Online
- How to Contact Us
- 1. Down the Rabbit Hole
- Why Clojure?
- Obtaining Clojure
- The Clojure REPL
- No, Parentheses Actually Wont Make You Go Blind
- Expressions, Operators, Syntax, and Precedence
- Homoiconicity
- The Reader
- Scalar Literals
- Strings
- Booleans
- nil
- Characters
- Keywords
- Symbols
- Numbers
- Regular expressions
- Scalar Literals
- Comments
- Whitespace and Commas
- Collection Literals
- Miscellaneous Reader Sugar
- Namespaces
- Symbol Evaluation
- Special Forms
- Suppressing Evaluation: quote
- Code Blocks: do
- Defining Vars: def
- Local Bindings: let
- Destructuring (let, Part 2)
- Sequential destructuring
- Map destructuring
- Creating Functions: fn
- Destructuring function arguments
- Function literals
- Conditionals: if
- Looping: loop and recur
- Referring to Vars: var
- Java Interop: . and new
- Exception Handling: try and throw
- Specialized Mutation: set!
- Primitive Locking: monitor-enter and monitor-exit
- Putting It All Together
- eval
- This Is Just the Beginning
- I. Functional Programming and Concurrency
- 2. Functional Programming
- What Does Functional Programming Mean?
- On the Importance of Values
- About Values
- Comparing Values to Mutable Objects
- A Critical Choice
- First-Class and Higher-Order Functions
- Applying Ourselves Partially
- 2. Functional Programming
- Composition of Function(ality)
- Writing Higher-Order Functions
- Building a Primitive Logging System with Composable Higher-Order Functions
- Pure Functions
- Why Are Pure Functions Interesting?
- Functional Programming in the Real World
- 3. Collections and Data Structures
- Abstractions over Implementations
- Collection
- Sequences
- Sequences are not iterators
- Sequences are not lists
- Creating seqs
- Lazy seqs
- Head retention
- Associative
- Beware of nil values
- Abstractions over Implementations
- Indexed
- Stack
- Set
- Sorted
- Comparators and predicates to define ordering
- Concise Collection Access
- Idiomatic Usage
- Collections and Keys and Higher-Order Functions
- Data Structure Types
- Lists
- Vectors
- Vectors as tuples
- Sets
- Maps
- Maps as ad-hoc structs
- Other usages of maps
- Immutability and Persistence
- Persistence and Structural Sharing
- Visualizing persistence: lists
- Visualizing persistence: maps (and vectors and sets)
- Tangible benefits
- Persistence and Structural Sharing
- Transients
- Metadata
- Putting Clojures Collections to Work
- Identifiers and Cycles
- Thinking Different: From Imperative to Functional
- Revisiting a classic: Conways Game of Life
- Maze generation
- Navigation, Update, and Zippers
- Manipulating zippers
- Custom zippers
- Ariadnes zipper
- In Summary
- 4. Concurrency and Parallelism
- Shifting Computation Through Time and Space
- Delays
- Futures
- Promises
- Shifting Computation Through Time and Space
- Parallelism on the Cheap
- State and Identity
- Clojure Reference Types
- Classifying Concurrent Operations
- Atoms
- Notifications and Constraints
- Watches
- Validators
- Refs
- Software Transactional Memory
- The Mechanics of Ref Change
- Understanding alter
- Minimizing transaction conflict with commute
- Clobbering ref state with ref-set
- Enforcing local consistency by using validators
- The Sharp Corners of Software Transactional Memory
- Side-effecting functions strictly verboten
- Minimize the scope of each transaction
- Readers may retry
- Write skew
- Vars
- Defining Vars
- Private vars
- Docstrings
- Constants
- Defining Vars
- Dynamic Scope
- Vars Are Not Variables
- Forward Declarations
- Agents
- Dealing with Errors in Agent Actions
- Agent error handlers and modes
- Dealing with Errors in Agent Actions
- I/O, Transactions, and Nested Sends
- Persisting reference states with an agent-based write-behind log
- Using agents to parallelize workloads
- Using Javas Concurrency Primitives
- Locking
- Final Thoughts
- II. Building Abstractions
- 5. Macros
- What Is a Macro?
- What Macros Are Not
- What Can Macros Do that Functions Cannot?
- Macros Versus Ruby eval
- What Is a Macro?
- Writing Your First Macro
- Debugging Macros
- Macroexpansion
- 5. Macros
- Syntax
- quote Versus syntax-quote
- unquote and unquote-splicing
- When to Use Macros
- Hygiene
- Gensyms to the Rescue
- Letting the User Pick Names
- Double Evaluation
- Common Macro Idioms and Patterns
- The Implicit Arguments: &env and &form
- &env
- &form
- Producing useful macro error messages
- Preserving user-provided type hints
- Testing Contextual Macros
- In Detail: -> and ->>
- Final Thoughts
- 6. Datatypes and Protocols
- Protocols
- Extending to Existing Types
- Defining Your Own Types
- Records
- Constructors and factory functions
- When to use maps or records
- Records
- Types
- Implementing Protocols
- Inline Implementation
- Inline implementations of Java interfaces
- Defining anonymous types with reify
- Inline Implementation
- Reusing Implementations
- Protocol Introspection
- Protocol Dispatch Edge Cases
- Participating in Clojures Collection Abstractions
- Final Thoughts
- 7. Multimethods
- Multimethods Basics
- Toward Hierarchies
- Hierarchies
- Independent Hierarchies
- Making It Really Multiple!
- A Few More Things
- Multiple Inheritance
- Introspecting Multimethods
- type Versus class; or, the Revenge of the Map
- The Range of Dispatch Functions Is Unlimited
- Final Thoughts
- III. Tools, Platform, and Projects
- 8. Organizing and Building Clojure Projects
- Project Geography
- Defining and Using Namespaces
- Namespaces and files
- A classpath primer
- Defining and Using Namespaces
- Location, Location, Location
- The Functional Organization of Clojure Codebases
- Basic project organization principles
- Project Geography
- 8. Organizing and Building Clojure Projects
- Build
- Ahead-of-Time Compilation
- Dependency Management
- The Maven Dependency Management Model
- Artifacts and coordinates
- Repositories
- Dependencies
- Build Tools and Configuration Patterns
- Maven
- Leiningen
- AOT compilation configuration
- Building mixed-source projects
- Final Thoughts
- 9. Java and JVM Interoperability
- The JVM Is Clojures Foundation
- Using Java Classes, Methods, and Fields
- Handy Interop Utilities
- Exceptions and Error Handling
- Escaping Checked Exceptions
- with-open, finallys Lament
- Type Hinting for Performance
- Arrays
- Defining Classes and Implementing Interfaces
- Instances of Anonymous Classes: proxy
- Defining Named Classes
- gen-class
- Annotations
- Producing annotated JUnit tests
- Implementing JAX-RS web service endpoints
- Using Clojure from Java
- Using deftype and defrecord Classes
- Implementing Protocol Interfaces
- Collaborating Partners
- 10. REPL-Oriented Programming
- Interactive Development
- The Persistent, Evolving Environment
- Interactive Development
- Tooling
- The Bare REPL
- Introspecting namespaces
- The Bare REPL
- Eclipse
- Emacs
- clojure-mode and paredit
- inferior-lisp
- SLIME
- Debugging, Monitoring, and Patching Production in the REPL
- Special Considerations for Deployed REPLs
- Limitations to Redefining Constructs
- In Summary
- IV. Practicums
- 11. Numerics and Mathematics
- Clojure Numerics
- Clojure Prefers 64-bit (or Larger) Representations
- Clojure Has a Mixed Numerics Model
- Rationals
- The Rules of Numeric Contagion
- Clojure Numerics
- Clojure Mathematics
- Bounded Versus Arbitrary Precision
- Unchecked Ops
- Scale and Rounding Modes for Arbitrary-Precision Decimals Ops
- 11. Numerics and Mathematics
- Equality and Equivalence
- Object Identity (identical?)
- Reference Equality (=)
- Numeric Equivalence (==)
- Equivalence can preserve your sanity
- Optimizing Numeric Performance
- Declare Functions to Take and Return Primitives
- Type errors and warnings
- Declare Functions to Take and Return Primitives
- Use Primitive Arrays Judiciously
- The mechanics of primitive arrays
- Automating type hinting of multidimensional array operations
- Visualizing the Mandelbrot Set in Clojure
- 12. Design Patterns
- Dependency Injection
- Strategy Pattern
- Chain of Responsibility
- Aspect-Oriented Programming
- Final Thoughts
- 13. Testing
- Immutable Values and Pure Functions
- Mocking
- Immutable Values and Pure Functions
- clojure.test
- Defining Tests
- Test Suites
- Fixtures
- Growing an HTML DSL
- Relying upon Assertions
- Preconditions and Postconditions
- 14. Using Relational Databases
- clojure.java.jdbc
- with-query-results Explained
- Transactions
- Connection Pooling
- clojure.java.jdbc
- Korma
- Prelude
- Queries
- Why Bother with a DSL?
- Hibernate
- Setup
- Persisting Data
- Running Queries
- Removing Boilerplate
- Final Thoughts
- 15. Using Nonrelational Databases
- Getting Set Up with CouchDB and Clutch
- Basic CRUD Operations
- Views
- A Simple (JavaScript) View
- Views in Clojure
- _changes: Abusing CouchDB as a Message Queue
- la Carte Message Queues
- Final Thoughts
- 16. Clojure and the Web
- The Clojure Stack
- The Foundation: Ring
- Requests and Responses
- Adapters
- Handlers
- Middleware
- Routing Requests with Compojure
- Templating
- Enlive: Selector-Based HTML Transformation
- Testing the waters
- Selectors
- Iterating and branching
- Putting everything together
- Enlive: Selector-Based HTML Transformation
- Final Thoughts
- 17. Deploying Clojure Web Applications
- Java and Clojure Web Architecture
- Web Application Packaging
- Building .war files with Maven
- Building .war files with Leiningen
- Web Application Packaging
- Java and Clojure Web Architecture
- Running Web Apps Locally
- Web Application Deployment
- Deploying Clojure Apps to Amazons Elastic Beanstalk
- Going Beyond Simple Web Application Deployment
- V. Miscellanea
- 18. Choosing Clojure Type Definition Forms Wisely
- 19. Introducing Clojure into Your Workplace
- Just the Facts
- Emphasize Productivity
- Emphasize Community
- Be Prudent
- 20. Whats Next?
- (dissoc Clojure JVM)
- ClojureCLR
- ClojureScript
- (dissoc Clojure JVM)
- 4Clojure
- Overtone
- core.logic
- Pallet
- Avout
- Clojure on Heroku
- Index
- About the Authors
- Colophon
- Copyright
O'Reilly Media - inne książki
-
Software as a service (SaaS) is on the path to becoming the de facto model for building, delivering, and operating software solutions. Adopting a multi-tenant SaaS model requires builders to take on a broad range of new architecture, implementation, and operational challenges. How data is partiti...(237.15 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Great engineers don't necessarily make great leaders—at least, not without a lot of work. Finding your path to becoming a strong leader is often fraught with challenges. It's not easy to figure out how to be strategic, successful, and considerate while also being firm. Whether you're on the...(118.15 zł najniższa cena z 30 dni)
126.65 zł
149.00 zł(-15%) -
Data science happens in code. The ability to write reproducible, robust, scaleable code is key to a data science project's success—and is absolutely essential for those working with production code. This practical book bridges the gap between data science and software engineering,and clearl...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
With the massive adoption of microservices, operators and developers face far more complexity in their applications today. Service meshes can help you manage this problem by providing a unified control plane to secure, manage, and monitor your entire network. This practical guide shows you how th...(194.65 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Get practical advice on how to leverage AI development tools for all stages of code creation, including requirements, planning, design, coding, debugging, testing, and documentation. With this book, beginners and experienced developers alike will learn how to use a wide range of tools, from gener...(164.25 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Rust's popularity is growing, due in part to features like memory safety, type safety, and thread safety. But these same elements can also make learning Rust a challenge, even for experienced programmers. This practical guide helps you make the transition to writing idiomatic Rust—while als...(164.25 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Advance your Power BI skills by adding AI to your repertoire at a practice level. With this practical book, business-oriented software engineers and developers will learn the terminologies, practices, and strategy necessary to successfully incorporate AI into your business intelligence estate. Je...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Microservices can be a very effective approach for delivering value to your organization and to your customers. If you get them right, microservices help you to move fast by making changes to small parts of your system hundreds of times a day. But if you get them wrong, microservices will just ma...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
JavaScript gives web developers great power to create rich interactive browser experiences, and much of that power is provided by the browser itself. Modern web APIs enable web-based applications to come to life like never before, supporting actions that once required browser plug-ins. Some are s...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
How will software development and operations have to change to meet the sustainability and green needs of the planet? And what does that imply for development organizations? In this eye-opening book, sustainable software advocates Anne Currie, Sarah Hsu, and Sara Bergman provide a unique overview...(169.14 zł najniższa cena z 30 dni)
177.65 zł
209.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: Clojure Programming. Practical Lisp for the Java World Chas Emerick, Brian Carper, Christophe Grand (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.