View Problem

Test if a condition holds for any items of a list

Given a list, test if a certain logical condition (i.e. predicate) holds for any items of the list.
DiskEdit
ruby
[2, 3, 4].any? { |x| x > 3 }
DiskEdit
clojure
; The standard library in Clojure has "not-any?" but (oddly enough) no "any?"
(defn any? [pred coll]
((complement not-any?) pred coll))

(any? #(> % 3) [2 3 4])
DiskEdit
clojure
(some #(> % 3) [2 3 4])
ExpandDiskEdit
cpp boost
template <typename InputIterator, typename Predicate>
bool match_any(InputIterator first, InputIterator last, Predicate pred)
{
return find_if(first, last, pred) != last;
}
DiskEdit
erlang
Result = lists:any(Pred, List).
DiskEdit
fsharp fsharp
let rec IsAny predicate source =
match source with
| [] -> false
| h::t ->
if (predicate h) then true
else (IsAny predicate t )
DiskEdit
ocaml
(* from the interactive loop: *)
# List.exists (fun x -> x > 3) [2; 3; 4] ;;
- : bool = true

Submit a new solution for ruby, clojure, cpp, erlang ...
There are 6 other solutions in additional languages (fantom, groovy, haskell, python ...)