Searchilizer ... loading ...
Clojure

Clojure

Lisp on the JVM. Can use all the Java libraries. This is the beginning skeleton of a page of Clojure links.

Clojure News

2013-05-20 Imagez
Here is an image processing library for Clojure that seems quite simple to use.
2013-03-31 Clojure Style Guide
“best practices so that real-world Clojure programmers can write code that can be maintained by other real-world Clojure programmers.”
2013-03-20 Pedestal: Build web apps in Clojure
Still in alpha and “Built with components that play nice together & can be re-assembled at will.”
2013-03-07 core.matrix performance
core.matrix is a library for Clojure that allows fast arraywise arithmetic on multidimensional arrays. The performance in these benchmarks is very impressive.
2013-03-01 Clojure 1.5 Released
Many bug fixes and performance enhancements; new reducer infrastructure, and more.
2013-02-28 Light Table Continues to Make Progress
Alpha Version 0.3.0 of the development environment for Clojure and other languages shows significant progress over the previous version, with a vim-imitation mode, better use of screen space, and the ability to connect live to a web browser.
2013-02-26 Clojure has a Problem with Async
The author believes that Clojure has a disadvantage compared with Node in the I/O area; commenters disagree.
2013-01-19 fireplace.vim
VimClojure is being replaced by this. I’ve been pretty happy with ScreenSend (used with paredit.vim), but this looks like another good way to go. (Previously named “foreplay.vim”.)
2013-01-17 Bringing Functional to the Frontend: Clojure + Clojurescript for the Web
The Prismatic team’s transition to ClojureScript, with the creation of a new ClojureScript templating library as a side-effect.
2013-01-16 Clojure Web Server Benchmarks
Requests/sec for various web serving strategies.
2013-01-08 Getting Started with Clojure
How to use Leiningen and start creating your first project.
2012-12-31 IClojure
“An Interactive Clojure repl, inspired by IPython.”
2012-12-22 Clojure 1.5.0 RC1
Clojure marches on, with new concurrency facilities, new threading macros, and more efficient reducers.
2012-10-26 Macros are Hard!
Talk with slides by David McNeil shows how you need to think deeply about what’s going on behind the scenes in order to understand what is happening with macros in Clojure.
2012-10-16 New Clojure Threading Macros
Draft code from Rich Hickey.
2012-04-18 Clojure 1.4 Announced
A new version of this extremely practical Lisp has been released. An interesting new feature is Reader Literals, which function as a kind of namespaced reader macro.

Tutorials & Documentation

Getting Started with Clojure
How to use Leiningen and start creating your first project.
Understanding Clojure Concurrency
Very clear introduction to a difficult topic, with well-chosen examples.
Eric Rochester’s Clojure Series
Shows how to use Clojure for several linguistic tasks, resulting in a meandering and friendly tutorial.
Clojure Libs and Namespaces
Helps to clear things up.
ClojureScript Tutorials
Mimmo Cosenza’s series of tutorials “will guide you in creating, setting up and running simple CLJS projects. The series follows a progressive enhancement of projects themselves.”
ClojureDocs - clojure.core/identity
Uses of the identity function; useful one-liners.
Macros are Hard!
Talk with slides by David McNeil shows how you need to think deeply about what’s going on behind the scenes in order to understand what is happening with macros in Clojure.
The Curious Clojurist
Neal Ford’s engaging introductory lecture.
Clojure cheatsheet
A convenient, hyperlinked table of contents of the Clojure language.

A nice, gentle introduction.

Thorough and quite clear survey, from language basics up to GUI desktop and web applications.

Quick reference.

Very clear essay on how to write a macro.

Thorough introduction assuming relatively little on the part of the reader.

A busy person’s introduction to Clojure: “Have a few hours spare and fancy getting to know Clojure and ClojureScript?”

Software Transactional Memory: Detailed overview of software transactional memory in Clojure.

Casting SPELs in LISP — Clojure version. The famous adventure game tutorial, adapted for this particular lisp.

Web Application Frameworks

ClojureHomePage
“ClojureHomePage is a Compojure based web framework that allows you to write the backend and frontend with Clojure.”
Pedestal: Build web apps in Clojure
Still in alpha and “Built with components that play nice together & can be re-assembled at will.”
Hiccup
“Fast library for rendering HTML in Clojure”.
Clojure Web Server Benchmarks
Requests/sec for various web serving strategies.
C2: Clojure(Script) data visualization
“C2 is a Clojure and ClojureScript data visualization library heavily inspired by Mike Bostock’s Data Driven Documents. C2 lets you declaratively create HTML and SVG markup based on data”.
Joodo
A Clojure web framework integrating Ring, Compojure, Hiccup, Speclj, and Leiningen.

Nice tutorial on “Developing and Deploying a Simple Clojure Web Application” using Compojure and Hiccup.

Noire, a “micro-framework;” may be deprecated in favor of Compojure, etc.

The request and response guts that most of the frameworks seem to be based on is called Ring.

Much more than just a web application framework, Immutant is an “Application Platform.”

ClojureScript

Clojure implemented in javascript aimed at Google Closure. Has most of Clojure except for concurrency and the Java interface (for obvious reasons). Write Gmail in lisp.

Faster, Better DOM manipulation with Dommy and ClojureScript
“We built dommy because we felt that a ClojureScript DOM library could be a simpler, faster, and better version of jQuery that fits organically into expressive functional code.”
Bringing Functional to the Frontend: Clojure + Clojurescript for the Web
The Prismatic team’s transition to ClojureScript, with the creation of a new ClojureScript templating library as a side-effect.
cljs-template
One way to learn and get started with clojurescript.
ClojureScript: Up and Running
“Learn how to build complete client-side applications with ClojureScript”.
ClojureScript Tutorials
Mimmo Cosenza’s series of tutorials “will guide you in creating, setting up and running simple CLJS projects. The series follows a progressive enhancement of projects themselves.”
Connecting to your creation
Changing the rules of a game as you play it by editing the ClojureScript source.

Video of presentation by Clojure’s author is quite persuasive.

“A short demonstration of using the ClojureScript browser-connected REPL to work with the twitterbuzz sample application.” This little movie by Brenton Ashworth is quite cool. He locally connects the ClojureScript REPL to a browser and can type ClojureScript whose side effects appear as browser behaviors.

ClojureScript One is a complete example of an implementation of ClojureScript to create a “single page” application using the same language on the client and the server.

Tools, Libraries

Editing

fireplace.vim
VimClojure is being replaced by this.

Slimv is “a SWANK client for Vim, similarly to SLIME for Emacs [...] Slimv opens the lisp REPL [...] inside a Vim buffer [...] Slimv supports SLIME’s debugger, inspector, profiler, cross reference, arglist, indentation, symbol name completion functions.” Of course this is for any lisp, but I have the impression that’s it’s popular with Clojure.

VimClojure This has been superseded by fireplace.vim. “[O]ne of the most sophisticated editing environments for Clojure. It provides syntax highlighting, indenting and command completion. [...] If requested VimClojure also provides a SLIME like interface to dynamically work with Clojure code. For this to work the included Nailgun server must be running.” I guess this can include the functionality of Slimv.

Plotting, Graphics

Rhizome
Graphiv diagrams from Clojure; extracted from the Channels library.
C2: Clojure(Script) data visualization
“C2 is a Clojure and ClojureScript data visualization library heavily inspired by Mike Bostock’s Data Driven Documents. C2 lets you declaratively create HTML and SVG markup based on data”.
clojure-gnuplot
“clojure-gnuplot is a simple clojure interface to gnuplot. It allows interaction using lispy syntax.” Briefly described in the gnuplot Cookbook.

Incanter is something like R for plotting, statistics, and stuff.

Science

Nurokit
Toolkit for machine learning; an example.

Databases

Korma
“Korma is a domain specific language for Clojure that takes the pain out of working with your favorite RDBMS.” It stays close to SQL, but is a nice abstraction.

GUI

Make using Swing easier with Seesaw.

Other Libaries

Imagez
Here is an image processing library for Clojure that seems quite simple to use.
Towards core.matrix for Clojure
A justification of the project that contains a useful rundown of existing matrix libraries.
Channels
“A channel represents a stream of messages. It consists of two parts, a node, which propagates messages downstream, and a queue, which stores messages when there are no downstream nodes.”

More Clojure

Imagez
Here is an image processing library for Clojure that seems quite simple to use.
Fibonacci Numbers in the Real World
The best way to calculate Fibonacci numbers on a real computer depends on what you want to know about them.
Towards core.matrix for Clojure
A justification of the project that contains a useful rundown of existing matrix libraries.
Channels
“A channel represents a stream of messages. It consists of two parts, a node, which propagates messages downstream, and a queue, which stores messages when there are no downstream nodes.”
π in Clojure
“After reading Carl Sagan’s Contact I’m crushing on π, so I looked it up on Wikipedia, where, of course, several algorithms for computing it are described in detail. One of them, the Brent-Salamin algorithm, has the really neat property of doubling the number of digits it gets right on each iteration.”
On the Perils of Dynamic Scope
“dynamic scope is easily abused and has a lot of unintended consequences.”
Clojure Style Guide
“best practices so that real-world Clojure programmers can write code that can be maintained by other real-world Clojure programmers.”
Tim Bray: Eleven Theses on Clojure
Some interesting early (2009) thoughts.
core.matrix performance
core.matrix is a library for Clojure that allows fast arraywise arithmetic on multidimensional arrays. The performance in these benchmarks is very impressive.
Practical Clojure
Book from 2010.
Clojure in Action
A book with a practical approach.
Programming Clojure
Not to be confused with Clojure Programming.
The Joy of Clojure
A popular book.
Clojure has a Problem with Async
The author believes that Clojure has a disadvantage compared with Node in the I/O area; commenters disagree.
The Clojure Toolbox
“A categorised directory of libraries and tools for Clojure.”
IClojure
“An Interactive Clojure repl, inspired by IPython.”
Clojure Quick Reference
From July 2010 (Clojure 1.2), a conveniently categorized index into the language.
Composing Music by Composing Functions
Chris Ford’s wonderful demonstration of building up musical ideas through composing clojure functions, culminating in assembling an approximation to a bit of Bach’s Goldberg Variations. Includes a fascinating psychoacoustic detour.
Fast JVM launching
This may make the use of clojure for utility scripts more palatable.
Dorothy: Graphviz from the comfort of Clojure
A domain specific language for drawing network graphs.

An assortment of interesting topics, from beginning to advanced, at Learning Clojure.

You are reading http://lee-phillips.org/Clojure/
▶  Comment   ∷   Share  ◀Share with FacebookShare with TwitterShare with RedditShare with StumbleUponShare with DiggShare with SlashdotShare with DeliciousShare with Google+

Comments

Comments are handled through email. Please send mail to _Clojure__comment@lee-phillips.org if you would like me to include it here. I will never expose your email address. Let me know if you want me to hide your name, as well.

Links to products on Amazon earn me a small commission when you buy through them. Thank you for your support.
Quotilizer ... loading ...
Subscribe:   RSS icon twitter icon Follow on Facebook
Tenuously related: