Clojure Programming

Practical Lisp for the Java World

Author: Chas Emerick,Brian Carper,Christophe Grand

Publisher: "O'Reilly Media, Inc."

ISBN: 1449335349

Category: Computers

Page: 630

View: 759

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
Posted in Computers

Functional Programming Patterns in Scala and Clojure

Write Lean Programs for the JVM

Author: Michael Bevilacqua-Linn

Publisher: N.A

ISBN: 9781937785475

Category: Computers

Page: 236

View: 2701

Provides a guide to using Scala and Clojure to solve in-depth programming problems.
Posted in Computers

Clojure Cookbook

Recipes for Functional Programming

Author: Luke VanderHart,Ryan Neufeld

Publisher: "O'Reilly Media, Inc."

ISBN: 1449366414

Category: Computers

Page: 476

View: 3002

With more than 150 detailed recipes, this cookbook shows experienced Clojure developers how to solve a variety of programming tasks with this JVM language. The solutions cover everything from building dynamic websites and working with databases to network communication, cloud computing, and advanced testing strategies. And more than 60 of the world’s best Clojurians contributed recipes. Each recipe includes code that you can use right away, along with a discussion on how and why the solution works, so you can adapt these patterns, approaches, and techniques to situations not specifically covered in this cookbook. Master built-in primitive and composite data structures Create, develop and publish libraries, using the Leiningen tool Interact with the local computer that’s running your application Manage network communication protocols and libraries Use techniques for connecting to and using a variety of databases Build and maintain dynamic websites, using the Ring HTTP server library Tackle application tasks such as packaging, distributing, profiling, and logging Take on cloud computing and heavyweight distributed data crunching Dive into unit, integration, simulation, and property-based testing Clojure Cookbook is a collaborative project with contributions from some of the world’s best Clojurians, whose backgrounds range from aerospace to social media, banking to robotics, AI research to e-commerce.
Posted in Computers

Clojure in Action

Author: Amit Rathore

Publisher: Manning Publications

ISBN: 9781617291524

Category: Computers

Page: 450

View: 4897

Clojure is a relatively new version of Lisp that runs on the Java Virtual Machine. It's a functional language, which means that it's ideal for the growing need for concurrent programming and for specialized tasks like creating domain specific languages. Clojure in Action, Second Edition is a fully-revised edition that covers the new features available in Clojure 1.5. This easy-to-follow tutorial provides a rapid introduction to the Clojure language and starts by showing how to use Clojure as a general purpose language. It looks at Clojure's efficient concurrency model, which is based on the familiar database concept of Software Transactional Memory (STM) and helps readers find a new level of productivity through Clojure DSLs that run on the JVM. Using this book, readers will discover countless tips, tricks, and techniques for writing smaller, faster, and safer code. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.
Posted in Computers

Programming Clojure

Author: Alex Miller,Stuart Halloway,Aaron Bedra

Publisher: N.A

ISBN: 9781680502466

Category: Computers

Page: 304

View: 5274

Getting started -- Exploring Clojure -- Unifying data with sequences -- Functional programming -- Specifications -- State and concurrency -- Protocols and datatypes -- Macros -- Multimethods -- Java Interop -- Building an application.
Posted in Computers

Clojure for the Brave and True

Learn the Ultimate Language and Become a Better Programmer

Author: Daniel Higginbotham

Publisher: No Starch Press

ISBN: 1593275919

Category: Computers

Page: 328

View: 3796

For weeks, months —nay!—from the very moment you were born, you’ve felt it calling to you. At long last you’ll be united with the programming language you’ve been longing for: Clojure! As a Lisp-style functional programming language, Clojure lets you write robust and elegant code, and because it runs on the Java Virtual Machine, you can take advantage of the vast Java ecosystem. Clojure for the Brave and True offers a “dessert-first” approach: you’ll start play­ing with real programs immediately, as you steadily acclimate to the abstract but powerful features of Lisp and functional programming. Inside you’ll find an offbeat, practical guide to Clojure, filled with quirky sample programs that catch cheese thieves and track glittery vampires. Learn how to: *Wield Clojure’s core functions *Use Emacs for Clojure development *Write macros to modify Clojure itself *Use Clojure’s tools to simplify concurrency and parallel programming Clojure for the Brave and True assumes no prior experience with Clojure, the Java Virtual Machine, or functional programming. Are you ready, brave reader, to meet your true destiny? Grab your best pair of parentheses—you’re about to embark on an epic journey into the world of Clojure!
Posted in Computers

Living Clojure

Author: Carin Meier

Publisher: "O'Reilly Media, Inc."

ISBN: 1491909293

Category: Computers

Page: 242

View: 5278

If you’re an experienced programmer who has not worked with Clojure before, this guide is the perfect thorough but gentle introduction for you. Author Carin Meier not only provides a practical overview of this JVM language and its functional programming concepts, but also includes a complete hands-on training course to help you learn Clojure in a structured way. The first half of the book takes you through Clojure’s unique design and lets you try your hand at two Clojure projects, including a web app. The holistic course in second half provides you with critical tools and resources, including ways to plug into the Clojure community. Understand the basic structure of a Clojure expression Learn how to shape and control code in a functional way Discover how Clojure handles real-world state and concurrency Take advantage of Java classes and learn how Clojure handles polymorphism Manage and use libraries in a Clojure project Use the core.async library for asynchronous and concurrent communication Explore the power of macros in Clojure programming Learn how to think in Clojure by following the book’s seven-week training course
Posted in Computers

The Joy of Clojure

Author: Michael Fogus,Chris Houser

Publisher: Manning Publications

ISBN: 9781617291418

Category: Computers

Page: 477

View: 4121

Summary The Joy of Clojure, Second Edition is a deep look at the Clojure language. Fully updated for Clojure 1.6, this new edition goes beyond just syntax to show you the "why" of Clojure and how to write fluent Clojure code. You'll learn functional and declarative approaches to programming and will master the techniques that make Clojure so elegant and efficient. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology The Clojure programming language is a dialect of Lisp that runs on the Java Virtual Machine and JavaScript runtimes. It is a functional programming language that offers great performance, expressive power, and stability by design. It gives you built-in concurrency and the predictable precision of immutable and persistent data structures. And it's really, really fast. The instant you see long blocks of Java or Ruby dissolve into a few lines of Clojure, you'll know why the authors of this book call it a "joyful language." It's no wonder that enterprises like Staples are betting their infrastructure on Clojure. About the Book The Joy of Clojure, Second Edition is a deep account of the Clojure language. Fully updated for Clojure 1.6, this new edition goes beyond the syntax to show you how to write fluent Clojure code. You'll learn functional and declarative approaches to programming and will master techniques that make Clojure elegant and efficient. The book shows you how to solve hard problems related to concurrency, interoperability, and performance, and how great it can be to think in the Clojure way. Appropriate for readers with some experience using Clojure or common Lisp. What's Inside Build web apps using ClojureScript Master functional programming techniques Simplify concurrency Covers Clojure 1.6 About the Authors Michael Fogus and Chris Houser are contributors to the Clojure and ClojureScript programming languages and the authors of various Clojure libraries and language features. Table of Contents PART 1 FOUNDATIONS Clojure philosophy Drinking from the Clojure fire hose Dipping your toes in the pool PART 2 DATA TYPES On scalars Collection types PART 3 FUNCTIONAL PROGRAMMING Being lazy and set in your ways Functional programming PART 4 LARGE-SCALE DESIGN Macros Combining data and code Mutation and concurrency Parallelism PART 5 HOST SYMBIOSIS Java.next Why ClojureScript? PART 6 TANGENTIAL CONSIDERATIONS Data-oriented programming Performance Thinking programs Clojure changes the way you think
Posted in Computers

Practical Common Lisp

Author: Peter Seibel

Publisher: Apress

ISBN: 1430200170

Category: Computers

Page: 501

View: 1219

* Treats LISP as a language for commercial applications, not a language for academic AI concerns. This could be considered to be a secondary text for the Lisp course that most schools teach . This would appeal to students who sat through a LISP course in college without quite getting it – so a "nostalgia" approach, as in "wow-lisp can be practical..." * Discusses the Lisp programming model and environment. Contains an introduction to the language and gives a thorough overview of all of Common Lisp’s main features. * Designed for experienced programmers no matter what languages they may be coming from and written for a modern audience—programmers who are familiar with languages like Java, Python, and Perl. * Includes several examples of working code that actually does something useful like Web programming and database access.
Posted in Computers

Professional Clojure

Author: Jeremy Anderson,Michael Gaare,Timothy Pratley,Nick Bailey,Justin HolguÃn

Publisher: John Wiley & Sons

ISBN: 1119267277

Category: Computers

Page: 264

View: 9848

Annotation 'Professional Clojure' is the experienced developer's guide to functional programming using the Clojure language. Designed specifically to meet the needs of professional developers, it briefly introduces functional programming before skipping directly to the heart of using Clojure in a real-world setting.
Posted in Computers

Web Development with Clojure

Build Bulletproof Web Apps with Less Code

Author: Dmitri Sotnikov

Publisher: Pragmatic Bookshelf

ISBN: 1680505300

Category: Computers

Page: 308

View: 5617

Modern web applications deserve modern tools. Harness the JVM's rich infrastructure while taking advantage of the expressive power and brisk performance of a modern functional language. Exploit Clojure's unique advantages for web development. Step by step, apply the fundamentals of programming in Clojure to build real-world, professional web applications. This edition features new libraries, tools, and best practices, and focuses on developing modern single-page applications. Stop developing web apps with yesterday's tools. Today, developers are increasingly adopting Clojure as a web-development platform. See for yourself what makes Clojure so desirable, as you create a series of web apps of growing complexity, exhibiting the full process of web development using a modern functional language. Journey through all the steps in developing a rich Picture Gallery web application--from conception to packaging and deployment. You'll work hands-on with Clojure and build real-world, professional web apps. This fully updated second edition reveals the changes in the rapidly evolving Clojure ecosystem. Get up to speed on the many new libraries, tools, and best practices. Gain expertise in the popular Ring/Compojure stack using the Luminus framework. Learn how Clojure works with databases and speeds development of RESTful services. See why ClojureScript is rapidly becoming a popular front-end platform, and use ClojureScript with the popular Reagent library to build single-page applications. This book is for you, whether you're already familiar with Clojure or if you're completely new to the language. What You Need: The latest JVM, Clojure 1.6+, and the Leiningen build tool, as well as an editor such as Emacs, IntelliJ, Eclipse, Light Table, or VI.
Posted in Computers

The Pragmatic Programmer

From Journeyman to Master

Author: Andrew Hunt,David Thomas

Publisher: Addison-Wesley Professional

ISBN: 013211917X

Category: Computers

Page: 352

View: 1298

What others in the trenches say about The Pragmatic Programmer... “The cool thing about this book is that it’s great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there.” —Kent Beck, author of Extreme Programming Explained: Embrace Change “I found this book to be a great mix of solid advice and wonderful analogies!” —Martin Fowler, author of Refactoring and UML Distilled “I would buy a copy, read it twice, then tell all my colleagues to run out and grab a copy. This is a book I would never loan because I would worry about it being lost.” —Kevin Ruland, Management Science, MSG-Logistics “The wisdom and practical experience of the authors is obvious. The topics presented are relevant and useful.... By far its greatest strength for me has been the outstanding analogies—tracer bullets, broken windows, and the fabulous helicopter-based explanation of the need for orthogonality, especially in a crisis situation. I have little doubt that this book will eventually become an excellent source of useful information for journeymen programmers and expert mentors alike.” —John Lakos, author of Large-Scale C++ Software Design “This is the sort of book I will buy a dozen copies of when it comes out so I can give it to my clients.” —Eric Vought, Software Engineer “Most modern books on software development fail to cover the basics of what makes a great software developer, instead spending their time on syntax or technology where in reality the greatest leverage possible for any software team is in having talented developers who really know their craft well. An excellent book.” —Pete McBreen, Independent Consultant “Since reading this book, I have implemented many of the practical suggestions and tips it contains. Across the board, they have saved my company time and money while helping me get my job done quicker! This should be a desktop reference for everyone who works with code for a living.” —Jared Richardson, Senior Software Developer, iRenaissance, Inc. “I would like to see this issued to every new employee at my company....” —Chris Cleeland, Senior Software Engineer, Object Computing, Inc. “If I’m putting together a project, it’s the authors of this book that I want. . . . And failing that I’d settle for people who’ve read their book.” —Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to Fight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.
Posted in Computers

Land of Lisp

Learn to Program in Lisp, One Game at a Time!

Author: Conrad Barski

Publisher: No Starch Press

ISBN: 1593272812

Category: Computers

Page: 504

View: 318

Provides information on the core concepts of Lisp progamming, covering such topics as recursion, input/output, object-oriented programming, and macros, and offers instructions on creating complete Lisp-based games, including a text adventure, an evolution simulation, and a robot battle.
Posted in Computers

Clojure High Performance Programming

Author: Shantanu Kumar

Publisher: Packt Pub Limited

ISBN: 9781782165606

Category: Computers

Page: 152

View: 4368

This is a short, practical guide that will teach you everything you need to know to start writing high performance Clojure code.This book is ideal for intermediate Clojure developers who are looking to get a good grip on how to achieve optimum performance. You should already have some experience with Clojure and it would help if you already know a little bit of Java. Knowledge of performance analysis and engineering is not required. For hands-on practice, you should have access to Clojure REPL with Leiningen.
Posted in Computers

ClojureScript: Up and Running

Functional Programming for the Web

Author: Stuart Sierra,Luke VanderHart

Publisher: "O'Reilly Media, Inc."

ISBN: 1449327397

Category: Computers

Page: 116

View: 9338

Learn how to build complete client-side applications with ClojureScript, the Clojure language variant that compiles to optimized JavaScript. This hands-on introduction shows you how ClojureScript not only has similarities to JavaScript—without the flaws—but also supports the full semantics of its parent language. You’ll delve into ClojureScript’s immutable data structures, lazy sequences, first-class functions, macros, and support for JavaScript libraries. No previous experience with Clojure or ClojureScript is necessary. If you’re familiar with JavaScript, HTML, CSS, and the DOM, you’ll quickly discover that ClojureScript has the same reach as JavaScript, but with more power. Start writing ClojureScript code with the Leiningen build system Learn how the ClojureScript compiler works to produce optimized JavaScript Use JavaScript functions and libraries directly from ClojureScript code Explore functions in Clojure’s sequence library such as map, reduce, and filter Use macros to define new control structures or embed domain-specific languages Compile manually or script your own workflow with ClojureScript’s compiler tools Integrate ClojureScript with Clojure on the JVM to build powerful client-server applications
Posted in Computers

Clojure Applied

From Practice to Practitioner

Author: Ben Vandgrift,Alex Miller

Publisher: Pragmatic Bookshelf

ISBN: 1680503227

Category: Computers

Page: 238

View: 7346

Think in the Clojure way! Once you're familiar with Clojure, take the next step with extended lessons on the best practices and most critical decisions you'll need to make while developing. Learn how to model your domain with data, transform it with pure functions, manage state, spread your work across cores, and structure apps with components. Discover how to use Clojure in the real world, and unlock the speed and power of this beautiful language on the Java Virtual Machine. Clojure Applied gives you the practical, realistic advice and depth of field that's been missing from your development practice. You want to develop software in the most effective, efficient way possible. This book gives you the answers you've been looking for in friendly, clear language. Dive into the core concepts of Clojure: immutable collections, concurrency, pure functions, and state management. You'll finally get the complete picture you've been looking for, rather than dozens of puzzle pieces you must assemble yourself. First, explore the core concepts of Clojure development: learn how to model your domain with immutable data; choose the ideal collection; and write simple, pure functions for efficient transformation. Next you'll apply those core concepts to build applications: discover how Clojure manages state and identity; spread your work for concurrent programming; and create and assemble components. Finally, see how to manage external integration and deployment concerns by developing a testing strategy, connecting with other data sources, and getting your libraries and applications out the door. Go beyond the toy box and into Clojure's way of thinking. By the end of this book, you'll have the tools and information to put Clojure's strengths to work. What You Need: To follow along with the examples in the book, you will need Clojure 1.6, Leinegen 2, and Java 6 or higher.
Posted in Computers

Mastering Clojure Macros

Write Cleaner, Faster, Smarter Code

Author: Colin Jones

Publisher: Pragmatic Bookshelf

ISBN: 9781941222225

Category: Computers

Page: 100

View: 3679

Level up your skills by taking advantage of Clojure's powerful macro system. Macros make hard things possible and normal things easy. They can be tricky to use, and this book will help you deftly navigate the terrain. You'll discover how to write straightforward code that avoids duplication and clarifies your intentions. You'll learn how and why to write macros. You'll learn to recognize situations when using a macro would (and wouldn't!) be helpful. And you'll use macros to remove unnecessary code and build new language features. Clojure offers some sharp tools in its toolbox, and one of the sharpest is its macro system. This book will help you write macros using Clojure, and more importantly, recognize when you should be using macros in the first place. The Lisp "code-as-data" philosophy gives tremendous advantages to macro authors and users. You can use macros to evaluate code in other contexts, move computations to compile time, and create beautiful API layers. You don't need to wait on the Clojure language itself to add new features, you'll learn how to implement even the lowest-level features as macros. You'll step through representative samples of how to use macros in production libraries and applications, find clear details on how to construct macros, and learn pointers to avoid obstacles that often trip up macro amateurs. Clojure macros are more straightforward to use than metaprogramming features in many other languages, but they're different enough from normal programming to present challenges of their own. Mastering Clojure Macros examines some of these issues, along with alternatives to macros where they exist. By the time you finish this book, you'll be thinking like a macro professional. What You Need:The book examples have been developed under Clojure 1.6.0, although earlier and later versions of Clojure may work as well. You'll want to use Leiningen 2.x in order to follow along with the examples that use external projects.
Posted in Computers

Clojure Data Analysis Cookbook - Second Edition

Author: Eric Rochester

Publisher: Packt Publishing Ltd

ISBN: 1784399957

Category: Computers

Page: 372

View: 1004

This book is for those with a basic knowledge of Clojure, who are looking to push the language to excel with data analysis.
Posted in Computers

The Art of the Metaobject Protocol

Author: Gregor Kiczales,Jim Des Rivières,Daniel Gureasko Bobrow

Publisher: MIT Press

ISBN: 9780262610742

Category: Computers

Page: 335

View: 1533

The CLOS metaobject protocol is an elegant, high-performance extension to theCommonLisp Object System. The authors, who developed the metaobject protocol and who were among thegroup that developed CLOS, introduce this new approach to programming language design, describe itsevolution and design principles, and present a formal specification of a metaobject protocol forCLOS.Kiczales, des Rivières, and Bobrow show that the "art of metaobject protocol design" lies increating a synthetic combination of object-oriented and reflective techniques that can be appliedunder existing software engineering considerations to yield a new approach to programming languagedesign that meets a broad set of design criteria.One of the major benefits of including themetaobject protocol in programming languages is that it allows users to adjust the language tobetter suit their needs. Metaobject protocols also disprove the adage that adding more flexibilityto a programming language reduces its performance. In presenting the principles of metaobjectprotocols, the authors work with actual code for a simplified implementation of CLOS and itsmetaobject protocol, providing an opportunity for the reader to gain hands-on experience with thedesign process. They also include a number of exercises that address important concerns and openissues.Gregor Kiczales and Jim des Rivières, are Members of the Research Staff, and Daniel Bobrow isa Research Fellow, in the System Sciences Laboratory at Xerox Palo Alto Research Center.
Posted in Computers

On Lisp

Advanced Techniques for Common Lisp

Author: Paul Graham

Publisher: N.A

ISBN: N.A

Category: Computers

Page: 413

View: 5732

Shows how to program in the bottom-up style that is ideal for Lisp programming, and includes a collection of Lisp programming techiques that shows how to take advantage of the language's design for efficient programming in a variety of (non-AI) applications.
Posted in Computers