GNU ELPA - dash


A modern list library for Emacs
dash-2.19.1.tar (.sig), 2024-Mar-31, 680 KiB
Magnar Sveen <>
Atom feed
Browse ELPA's repository
CGit or Gitweb

To install this package from Emacs, use package-install or list-packages.

Full description

A modern list API for Emacs.

See its overview at

Old versions

dash-2.19.0.tar.lz2021-Jul-08 106 KiB
dash-2.18.1.tar.lz2021-Feb-28 103 KiB
dash-2.18.0.tar.lz2021-Feb-15 103 KiB
dash-2.12.0.tar.lz2015-Oct-05100.0 KiB


Dash NEWS -- history of user-visible changes

Copyright (C) 2012-2021 Free Software Foundation, Inc.

See the end of the file for license conditions.

Change log

From 2.19.0 to 2.19.1
  • Fixed a regression from 2.18 in -is-suffix-p which led to false negatives when parts of the suffix appeared multiple times in the list being searched (Bennett Rennier, #384).
From 2.18.1 to 2.19.0
  • Reverted a breaking change introduced in 2.18.0 that caused the threading macro --> to be indented differently from -> and ->> (#375).
  • Added and fixed Edebug specifications for many Dash macros (Philipp Stephani, #380, #381).
New features
  • The combinators -on, -flip, -not, -andfn, and -orfn now return variadic functions that take any number of arguments (#308).
  • New combinator -rotate-args similar to -flip, but for arbitrary arglist rotations (suggested by @vapniks, #72).
  • New function -every and its anaphoric macro counterpart --every. They are like the existing -every-p and --every-p, respectively, but return the last non-nil result instead of just t.
  • New macro --partition-after-pred which affords -partition-after-pred better performance (Per Weijnitz, #362).
From 2.18.0 to 2.18.1
  • Fixed a regression from 2.17 as well as a long-standing bug in --iterate, which evaluated its arguments one too many times. This in turn could lead to errors in -flatten-n when it tried flattening certain structures too far (#373).
From 2.17 to 2.18

This release absorbs the now obsolete dash-functional version 1.3.0 into dash, and brings the very old version of dash on GNU ELPA up to date.

Package maintainers should replace all uses of dash-functional, which will eventually be deleted, with dash version 2.18.0. For more information on this, see:

  • New function -iota for generating arithmetic sequences (@holomorph, #215).

  • Calling -list with more than one argument is now deprecated.

  • -lambda now accepts an empty argument list.

  • New anaphoric macros --reductions-from, --reductions, --reductions-r-from, and --reductions-r corresponding to the analogous non-anaphoric functions.

  • -doto threading now works as with ->.

  • New buffer-local minor mode dash-fontify-mode and globalized counterpart global-dash-fontify-mode for fontifying special Dash variables such as it, it-index, acc, etc. The minor mode also fontifies calls to Dash macros in older Emacs versions which did not dynamically detect macro calls.

    This obsoletes the user option dash-enable-fontlock and the function dash-enable-font-lock, which is now an alias of global-dash-fontify-mode.

  • New command dash-register-info-lookup for integration with C-h S (info-lookup-symbol). This command allows Dash symbols to be looked up in the Dash manual just like Elisp symbols are looked up in the Elisp manual. The command can be called directly when needed, or automatically from your user-init-file. For example:

    el (with-eval-after-load 'info-look (dash-register-info-lookup))

  • Dash is now listed under the standard Customization groups and Finder keywords extensions and lisp.

  • The Dash manual is now licensed under the GNU Free Documentation License version 1.3.

  • Various other bug fix, performance, byte-compilation, and documentation improvements.

From 2.16 to 2.17
  • Sped up -uniq by using hash-tables when possible (@cireu, #305).
  • Fixed -inits to be non-destructive (@SwiftLawnGnome, #313).
  • Fixed indent rules for -some-> and family (@wbolster, #321).
  • Added -zip-lists which always returns a list of proper lists, even for two ... ...