1.6 KiB
bang.el 
The startings of a modern list api for Emacs. Does not require 'cl.
We're looking to Clojure for naming and signatures.
Warning
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.
License
Copyright (C) 2012 Magnar Sveen, Joel McCracken
Authors: Magnar Sveen magnars@gmail.com 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 http://www.gnu.org/licenses/.