Filtering elements from collections

This section quickly shows how to select only some elements of a Clojure sequence.

Getting ready

The first parts of the recipe do not need any special preparation, but the final section needs the core.async library to be added to your project.clj file (or any other dependency management you are using):

:dependencies [ 
     [org.clojure/clojure "1.8.0"] 
    [org.clojure/core.async "0.2.371"]] 

How to do it...

There are four main functions to filter elements:

  • filter
  • keep and keep-indexed
  • remove
  • take and take-while

Let's go through a few simple examples.

Filtering multiples of three

The following code filters numbers that are multiples of three:

(filter  
 #(= 0 (rem % 3)) 
 (range 1 10)) 
 ; (3 6 9) 

Filtering items of a map

This filters keys ...

Get Clojure Programming Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.