
clojure
Get flash to fully experience Pearltrees
Exploring the connection between lambda calculus and programming As we all know, Lisp is based on the Lambda Calculus. In this issue, we will open the lambda can of worms, especially as it relates to programming languages. A brief introduction: Lambda Calculus consists of three parts (with their Lisp equivalents): variables (symbols) lambda abstraction (defining a function) lambda application (applying a function)
Clojure Gazette 1.17
Anyone who has ever learned to program in Lisp will tell you it is very different from any other programming language. It is different in lots of surprising ways - This comic book will let you find out how Lisp's unique design makes it so powerful ! This tutorial was adapted for Clojure, an exciting new dialect of Lisp running on the Java Virtual Machine.
Casting SPELs with Clojure - Home -
PCL -> Clojure
PCL -> Clojure Tags: clojure and tutorial My current leisure-time project is porting the examples from Peter Seibel's excellent Practical Common Lisp (PCL) to Clojure . I think Clojure is interesting for three reasons: Clojure is Lisp, but minus historical baggage.by R. Mark Volkmann , Partner Object Computing, Inc. (OCI) last updated on 9/29/12
Clojure - Functional Programming for the JVM
SOLID Clojure
Emad Benjamin explains how to deploy and tune a JVM on a virtual infrastructure (vSphere), and how to tune the garbage collector in this environment. Emad Benjamin Mar 28, 2013 Gregor Richards introduces Evalorizer, a heuristics based tool which is meant to replace JavaScript eval constructs with safer JavaScript correspondents. Stuart Church discusses applying the theories of species evolution, especially evolutionary and behavioral ecology, to software design. Stuart Church Mar 27, 2013videos
java_interop
Member access (.instanceMember instance args*) (.instanceMember Classname args*) (Classname/staticMethod args*)Flowchart for choosing the right Clojure type definition form | cemerick
Clojure offers a number of different forms that define types (and generate Java classes). Choosing between deftype , defrecord , reify , proxy , and gen-class can be a tripping point for those new to Clojure. I’d obviously like to make such decisions easier for everyone . I know that many people learn best through visual aids, so I’ve been working on a flowchart that attempts to encapsulate some of the significant choices that go into deciding between the different type-definition forms. A draft of it is below; let me know if it is helpful to you (or not!), how you think it could be made better, etc.Clojure & Java Interop
About a year ago I got a phone call asking if I wanted to join another team at DRW . The team supports a (primarily) Java application, but the performance requirements would also allow it to be written in a higher level language. I'd been writing Clojure (basically) full-time at that point - so my response was simple: I'd love to join, but I'm going to want to do future development using Clojure. A year later we still have plenty of Java, but the vast majority of the new code I add is Clojure.::rect -> :user/rect (derive ::rect ::shape) (derive ::square ::rect) (parents ::rect) -> #{:user/shape} (ancestors ::square) -> #{:user/rect :user/shape} (descendants ::shape) -> #{:user/rect :user/square} (isa? 42 42) -> true (isa?
multimethods
Polymorphism in Clojure
In most Object Oriented programming languages, polymorphism is tied to inheritance. In Clojure however, the concept of concrete inheritance is not built into the language. So, when I was first learning Clojure, it was hard for me to use my previous knowledge of polymorphism in the functional world. No need to fear, Clojure provides great methods for achieving polymorphism without using concrete inheritance. As an example, this is a simple function that takes basic Clojure data and converts it to JSON.A friend asked me a question about multi-methods and since the response was long-ish, I’m dumping it here in case it helps someone else: Question: “Is it possible to write a multimethod that has defmethods which handle ranges of values? For example, say that a person has an age. Can I write a multimethod that accepts a person as a parameter and returns “child” if age < 16, "adult" if 16 <= age < 66 and "senior" if age >= 66?”
Clojure multi-methods
Clojure multimethods « Constant Arguments
I have just began my adventures in Clojure land. So far it seems exotic for someone who’s just beginning to grasp the marvels of functional programming and for whom Lisp has previously been just magic inside parentheses. However, even though my experience with Clojure is very limited, I’ve already noticed that it is a very enabling language. I’m planning to post brief introductions or tutorials on Clojure’s features on this blog, mostly to educate myself. I’m sure I won’t be able to avoid errors. If you spot one, please let me know.David Nolen: "Predicate Dispatch" When designing functions that can leverage more than the type of the first argument, the Clojurian reaches for multimethods. Yet after some experience, he/she might realize that multimethods have considerable limitations, particularly the closed nature of the dispatch function itself. How can we fulfill the promise of open extension? Predicate dispatch as described by Craig Chambers and Weimin Chen seems promising, but their implementation hardwires many important details. By leveraging the literature around high performance pattern matching compilation as found in Standard ML, OCaml, and Haskell and by driving the compilation with a logic engine, we can achieve a fully open predicate dispatch system with considerable performance gains over multimethods.
David Nolen: "Predicate Dispatch" | Clojure on Blip
Protocols were introduced in Clojure 1.2. Motivation Clojure is written in terms of abstractions. There are abstractions for sequences, collections, callability, etc.

