Trie. Remote slime repl. SLIME is a powerful extension for Emacs that transforms Emacs into an IDE for Lisp.
It sets up Emacs so that it can connect to and interact with a Lisp running as a separate process – even on a separate server. This configuration allows you to connect to a running application with Emacs, allowing you to inspect the state of and debug a running application. In this post I will walk you through how to set up and use this scenario using Emacs, SLIME and SSH to connect to a remote JVM running Clojure. SLIME and Swank. Pcollections - Google Code. Ongoing · Concur.next & WF2 — Tuning Concurrent Clojure.
I’ve been working on, and writing about, running Clojure Wide Finder code.
But I was never satisfied with the absolute performance numbers. This is a write-up in some detail as to how I made the code faster and also slower, including lessons that might be useful to those working on Clojure specifically, concurrency more generally, and with some interesting data on Java garbage collection and JDK7.
[Update: My relationship with the JVM is improving, based on good advice from the Net. This article has been partly re-written and is much more cheerful.] [This is part of the Concur.next series and also the Wide Finder 2 series.] Be mindful of Clojure's binding - Chas Emerick - Muck and B. Clojure performance tips « Occasionally sane. I originally wrote this in a Google Groups thread, but I figured it’s worth repeating here.
Somebody posted a Java and Clojure snippet to the Clojure Google group and mentioned that the Java code was vastly faster than the Clojure code and he wondered if Clojure could get within reach of Java’s speed. In my own clj-starcraft project, I faced — and actually, still face — performance problems vis-à-vis Java. Specifically, at the time of this writing, my Clojure code is roughly 6 times slower than Java (Clojure takes around 70 seconds to parse 1,050 files, Java takes 12.) New new | Clojure. Clojure issue tracking now lives at and the wiki is at These Assembla pages are kept online for historical interest only.
Docs (new classname ...) does what it always did. Protocols | Clojure. Clojure issue tracking now lives at and the wiki is at These Assembla pages are kept online for historical interest only.
Protocols This page is a design scratchpad. Please see: Online Learning in Clojure ← Structure & Process. Online Learning is a relatively old branch of machine learning that has recently regained favour for two reasons.
Firstly, online learning algorithms such as Stochastic Gradient Descent work extremely well on very large data sets which have become increasingly prevalent (and increasingly large!). Secondly, there has been a lot of important theoretical steps made recently in understand the convergence behaviour of these algorithms and their relationship to traditional Empirical Risk Minimisation (ERM) algorithms such as Support Vector Machines (SVMs).
OverviewOfContrib - clojure-contrib - An overview of the clojure. Object Computing, Inc. - Java News Brief - March 2009. By R.
Mark Volkmann, Partner Object Computing, Inc. (OCI) last updated on 6/2/13. A monad tutorial for Clojure programmers (part 1) « On Clojure. Monads in functional programming are most often associated with the Haskell language, where they play a central role in I/O and have found numerous other uses.
Most introductions to monads are currently written for Haskell programmers. However, monads can be used with any functional language, even languages quite different from Haskell. Here I want to explain monads in the context of Clojure, a modern Lisp dialect with strong support for functional programming. A monad implementation for Clojure is available in the library clojure.algo.monads. Before trying out the examples given in this tutorial, type (use 'clojure.algo.monads) into your Clojure REPL. Clojure maps. It's great to see all of the Clojure libraries springing up as people pull Clojure towards their application domains, and shape it for the styles of programming they prefer.
In looking at some of the libraries, I am a bit concerned that maps are not being used when the logical entity is in fact a map. If you like Clojure, I would hope one of the things you like about it is that 'everything works with everything' to as great an extent as possible. This falls out of the fact that Clojure very much takes to heart this Alan Perlis quote: "It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures. " Clojure intro. By R.
Mark Volkmann, Partner Object Computing, Inc. (OCI) last updated on 9/29/12. Streams in clojure. (Note: this section describes work in progress, currently only available in SVN) I've been working on a stream model for Clojure. The basic idea behind streams is that they are ephemeral - they flow by once. Streams have nice laziness and performance characteristics when building pipelines of computations. You see stream-like things in many languages - often they are called generators/iterators/enumerators. Trampoline for mutual recursion - Clojure. On 28 Nov., 23:29, Meikel Brandmeyer <m... @kotka.de> wrote: > Hi André, > > Am 28.11.2008 um 22:56 schrieb André Thieme: > > >> Maybe I have a wrong understanding of "closure", but > >> as far as I understand, every function definition in > >> Clojure - be it defn or #() - finally translates to (fn ...).
> >> And fn creates a closure. > > I tooled myself up and looked up the definition of "closure" > on Wikipedia. It seems that the definition says "one or more > bound variables". I still don't see why the "empty" environment > should that much of a special case. Why not just say: > "a closure keeps its environment".