Clojure is a modern, powerful, and functional programming language that runs on the Java virtual machine (JVM) and provides easy ways to manipulate lists. If you are working with lists in Clojure, you may need to check if a list contains a specific value. In this Answer, we will discuss some ways to accomplish this task.
contains? functionClojure provides a built-in function called contains? that takes two arguments: a collection and a value. It returns true if the collection contains the value and false otherwise. Here’s an example:
(def my-list [1 2 3 4 5])(println "my-list cotains 3 =>" (contains? my-list 3)) ;; => true(println "my-list cotains 6 =>" (contains? my-list 6)) ;; => false
In this example, we use the contains? function to test if the list contains the value 3 or 6. The contains function returns the true for the matched element otherwise returns false. In our case, for value 3 we get true as result and for the value 6 we get false as a result.
some functionThe some function takes a predicate function and a collection. It returns the first value in the collection for which the predicate function returns true, or nil if no value satisfies the predicate. Here’s an example:
(def my-list [1 2 3 4 5])( println "my-list contains 3:" (some #(= % 3) my-list) );; => 3( println "my-list contains 6:" (some #(= % 6) my-list) );; => nil
In this example, we use an anonymous function to test each element of the list for equality with the value 3 or 6. The some function returns the first element that satisfies the predicate.
filter functionThe filter function takes a predicate function and a collection. It returns a new collection containing only the elements of the original collection for which the predicate function returns true. Here’s an example:
(def my-list [1 2 3 4 5])( println "my-list contains 3:" (filter #(= % 3) my-list) );; => (3)( println "my-list contains 6:" (filter #(= % 6) my-list) );; => ()
In this example, we use an anonymous function to test each element of the list for equality with the value 3 or 6. The filter function returns a new list containing only the elements that satisfy the predicate. If the list is empty, it means that the value is not present in the original list.