code: public static <K, V> boolean any(Map<K, V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<?> predicate) {
          BooleanClosureWrapper bcw = new BooleanClosureWrapper(predicate);
          for (Map.Entry<K, V> entry : self.entrySet()) {
              if (bcw.callForMap(entry)) {
                  return true;
              }
          }
          return false;
      }
docs: Iterates over the entries of a map, and checks whether a predicate is
  valid for at least one entry. If the
  closure takes one parameter then it will be passed the Map.Entry
  otherwise if the closure takes two parameters then it will be
  passed the key and the value.
  <pre class="groovyTestCase">
  assert [2:3, 4:5, 5:10].any { key, value {@code ->} key * 2 == value }
  assert ![2:3, 4:5, 5:10].any { entry {@code ->} entry.key == entry.value * 2 }
  </pre>
  
  @param self      the map over which we iterate
  @param predicate the 1 or 2 arg closure predicate used for matching
  @return true if any entry in the map matches the closure predicate
  @since 1.5.0