code: public static Object findResult(Object self, Closure condition) {
          for (Iterator iter = InvokerHelper.asIterator(self); iter.hasNext(); ) {
              Object value = iter.next();
              Object result = condition.call(value);
              if (result != null) {
                  return result;
              }
          }
          return null;
      }
docs: Treats the object as iterable, iterating through the values it represents and returns the first non-null result obtained from calling the closure, otherwise returns null.
  <p>
  <pre class="groovyTestCase">
  int[] numbers = [1, 2, 3]
  assert numbers.findResult { if(it {@code >} 1) return it } == 2
  assert numbers.findResult { if(it {@code >} 4) return it } == null
  </pre>
  
  @param self      an Object with an iterator returning its values
  @param condition a closure that returns a non-null value to indicate that processing should stop and the value should be returned
  @return the first non-null result of the closure
  @since 1.7.5