Clojure Series: Table of Contents Writing/Coding Writing and Coding, Literature and Computers Tuesday, June 17, 2008 Clojure Series: Table of Contents Here are the postings I have published so far for this series. Posted by Eric Rochester at 5:52 PM Labels: clojure, clojure-series 9 comments: geekiac said... Thank you for writing on Clojure. June 25, 2008 at 5:32 AM Eric Rochester said... @geekiacI'm glad you're liking it. June 25, 2008 at 8:38 AM Paul Drummond said... Nice articles, looking forward to reading more! June 26, 2008 at 7:18 AM Great! June 26, 2008 at 8:57 AM Everything is very clear so far - it's a nice gentle introduction and I already know most of what has been covered so far. June 26, 2008 at 9:21 AM Everything being immutable is a different way of doing things, and sometimes it can be hard to get your head around.Have you seen the Rich's screencast about data types? June 26, 2008 at 5:14 PM June 27, 2008 at 3:49 AM Fogus said... Great job so far! September 18, 2008 at 11:48 AM Bryan Kyle said... August 19, 2010 at 1:50 PM
Foreword | Clojure for the Brave and True As you read this hilarious book, you will at some point experience a very serious moment. It is the moment you admit to yourself that programming is more enjoyable after knowing some Clojure. It is also the moment that your investment in this book, in money and time, comes back to you—with interest. Humor has a certain relationship to seriousness. This book works in the opposite way. This approach is refreshing because most of the programming books I’ve read are drier than a camel’s fart. Clojure is the topic of this book, but in a way it—or perhaps its creator, Rich Hickey—is also one of the authors, since Clojure is the most elegant programming language ever designed. Elegance is a quality regularly ascribed to many dialects in the family of programming languages known collectively as Lisp, of which Clojure is one. Since 1958, there have been many Lisps and Lisp books. I find Clojure, and this particular book about it, especially right for the present. Alan Dipert
Clojure - Functional Programming for the JVM by R. Mark Volkmann, Partner Object Computing, Inc. (OCI) last updated on 6/2/13 Contents Introduction The goal of this article is to provide a fairly comprehensive introduction to the Clojure programming language. Please send feedback on errors and ways to improve explanations to mark@ociweb.com, or fork the repository and send a pull-request. You said X, but the correct thing to say is Y. Updates to this article that indicate the "last updated" date and provide a dated list of changes will be provided at Code examples in this article often show the return value of a function call or its output in a line comment (begins with a semicolon) followed by "->" and the result. (+ 1 2) ; showing return value -> 3 (println "Hello") ; return value is nil, showing output -> Hello Functional Programming Functional programming is a style of programming that emphasizes "first-class" functions that are "pure". In practice, applications need to have some side effects.
Improving Clojure’s docs You are here: Home / Clojure / Improving Clojure’s docs There was an interesting conversation today on #clojure about various aspects of Clojure documentation. This is not a new topic I thought I’d goose it a little more publicly. There are docs in several places (this is incomplete, but most easily found): clojure.org – “official”, first-stop, very small editor set dev.clojure Confluence – wiki, editable by many but less formal. Clojure Docs – a place to stash per-function examples in core and libraries Learn-Clojure – a gathering of “learning” resources At last year’s conj, I was inspired to improve and talked Stu into letting me make some changes <evil-laugh/>. Eventually, my free time ran out and I declared doc change bankruptcy and just put my todo list on the dev site . If you come out of the conj inspired to do some doc work to improve your world, here are some suggestions: Pick up one of the items on the .org TODO list (or add your own pointy edge).
Fatvat: Data Persistence in GAE with Clojure If you want to persist stuff in Java, you've got a bewildering amount of choiceThere's even an entire book about making the right decision! (Persistence in the Enterprise) Google App Engine has gone with JDO using the Data Nucleus platform. In GAE this is split again into two APIs, the high-level one for persisting objects, and a lower-level one which allows you to persist raw data. When using Clojure it makes more sense to go with the lower-level api. So how do we store data in GAE? (ns news.savestory (:use (news appengine)) (:gen-class :extends javax.servlet.http.HttpServlet) (:import (com.google.appengine.api.datastore DatastoreServiceFactory Entity Key Query))) (defn store [data type] (let [entity (Entity. (.toString type))] (doseq [[k v] data] (.setProperty entity (.toString k) v)) (.put (DatastoreServiceFactory/getDatastoreService) entity) (.getKey entity))) store takes a map and a type and persists it in the database and returns the key associated with this entity.
Learn clojure in Y Minutes Clojure is a Lisp family language developed for the Java Virtual Machine. It has a much stronger emphasis on pure functional programming than Common Lisp, but includes several STM utilities to handle state as it comes up. This combination allows it to handle concurrent processing very simply, and often automatically. (You need a version of Clojure 1.2 or newer) Further Reading This is far from exhaustive, but hopefully it’s enough to get you on your feet. Clojure.org has lots of articles: Clojuredocs.org has documentation with examples for most core functions: 4Clojure is a great way to build your clojure/FP skills: Clojure-doc.org (yes, really) has a number of getting started articles: Got a suggestion? Learning Clojure Some paragraphs in [ ] are author notes. They will be removed as the page matures. You should be able to read the text OK if you ignore these notes. This Book is currently being restructured to better satisfy the wikibooks standard. For detailed coverage of Clojure, consult the language and API reference at clojure.org. Clojure (read as closure), is a powerful, lisp-1 programming language designed by Rich Hickey and designed to run on the Java Virtual Machine. Getting Started[edit] History A brief history of the Clojure language. Installation Learn how to install Clojure on Windows, Linux, and Mac Learn how to launch the REPL execution system and the classic "Hello World" application Basics[edit] Basic Syntax Describes the basics in how the applications you write will be interpreted Coding Conventions Quickly describes the generally accepted conventions for Clojure. Functional Programming The entities used to store data of various shapes Namespaces Basic Operations Explains how use essential functions
Clojure Programming - Wikibooks, collection of open-content textbooks Clojure is a dynamic programming language for the JVM. Introduction[edit] People come to Clojure from a variety of backgrounds. Feel free to post your own code, written in the Clojure language, here. Implementations[edit] There are a number of different implementations of the Clojure language: Clojure (the original Java-based implementation)ClojureScript (compiles to JavaScript)ClojureCLR (for Microsoft's .NET framework)clojure-py (Python-based)clojure-scheme (compiles to Scheme)ClojureC (compiles to C) See also Clojure-metal (thoughts/plans for Clojure on LLVM). FAQ[edit] Some answers to Frequently Asked Questions. Getting started[edit] The Getting started section covers obtaining and installing Clojure as well as basic setup of editors such as Emacs or Vim. Other "Getting Started" guides and documentation: Concepts[edit] The Concepts section covers Clojure language basics, such as supported datatypes, "mutability" or state in Clojure, functional programming and the concurrency features.
Learning Clojure - What should I know about Java and more Planet Clojure Mark Volkmann's Clojure Page Mark Volkmann's Page This page contains resources related to the Clojure programming language. Article Change History Sounds Even Jennifer Aniston has quit using other programming languages and now prefers Clojure. Sound Clip #1 Sound Clip #2