InfoQ Homepage LISP Content on InfoQ
-
Clojure Spec: Expressing Data Constraints without Types
Alex Miller introduces Clojure Spec which can be used for program validation, documentation, destructuring, instrumentation, data generation, and automatic generative testing.
-
Parasitic Programming Languages
David Nolen examines the benefits and tradeoffs associated with creating a language based on an existing runtime, with a special focus on the Clojure and ClojureScript projects.
-
Using Clojure and Neo4j to Build a Meetup Recommendation Engine
Mark Needham shows how a meetup recommendation engine using Neo4j and Clojure can be built from scratch, combining content-based and collaborative filtering using Cypher and Clojure.
-
Understanding Core Clojure Functions
Jonathan Graham presents how to implement our own versions of the Clojure functions reduce, count, filter, map and pmap.
-
CIDER: Building a Clojure Interactive Development Environment that Rocks in Emacs
Bozhidar Batsov introduces CIDER, an interactive development environment for Clojure, discussing building dev tools on top of Emacs, the history of the project, current state and plans for its future.
-
Contracts in Clojure: Settling Types vs Tests
Jessica Kerr talks about Clojure and explores the potential of contracts as the best-yet compromise between types and tests.
-
Becoming an Advanced Groovy Developer
Tom Henricksen covers Design Patterns in Groovy, compilation configuration, mixing Java and Groovy, and calling other languages from Groovy. He shows how to call Scala and Clojure from Groovy.
-
Concurrency Options on the JVM
Jessica Kerr covers some of the concurrency tools existing in JVM languages including ExecutorService, Futures, Akka actors, and core.async coroutines, providing advice on writing deadlock-free code.
-
LDB: 10x Performance Increase after Rewriting Linked-in C Module in Pure Erlang
Daniel Pezely discusses the 10 fold performance increase of a Lisp and C system after rewriting it in Erlang, outlining where issues existed before and the design and implementation of the new system.
-
An Introduction to Clojure and ClojureScript
David Tanzer introduces Clojure and ClojureScript, discussing the language basics and some libraries useful for writing real applications.
-
core.async: Concurrency Without Callbacks
Stuart Halloway discusses the design of core.async and some of its capabilities: channels, put and take, go blocks, alts! and alts!!, timeouts, showing their use through code.
-
Down the Clojure Rabbit Hole
Christophe Grand tells Clojure stories full of immutability, data over behavior, relational programming, declarativity, incrementalism, parallelism, collapsing abstractions, local state and more.