Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Used to be a modern list library for Emacs (renamed to dash)
branch: double-bang-re…

This branch is 58 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

bang.el Build Status

The startings of a modern list api for Emacs. Does not require 'cl.

We're looking to Clojure for naming and signatures.


This is so much a work in progress that you should definitely not be using it yet.

Anaphoric functions

While !filter takes a function to filter the list by, you can also use the anaphoric form with double bangs - which will then be executed with it exposed as the list item. Here's an example:

(!filter (lambda (num) (= 0 (% num 2))) '(1 2 3 4)) ;; normal version

(!!filter (= 0 (% it 2)) '(1 2 3 4)) ;; anaphoric version

of course the original can also be written like

(defun even? (num) (= 0 (% num 2)))

(!filter even? '(1 2 3 4))

which demonstrates the usefulness of both versions.


Copyright (C) 2012 Magnar Sveen, Joel McCracken

Authors: Magnar Sveen Joel McCracken Keywords: lists

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see

Something went wrong with that request. Please try again.