while (xs.Any(x => f(x))) { }
Pulling things out into other functions makes it even clearer.
Though yes, the goto is clearer than the labelled continue. I wouldn't necessarily agree that it's less error prone though.
Pulling things out into other functions makes it even clearer.
Though yes, the goto is clearer than the labelled continue. I wouldn't necessarily agree that it's less error prone though.
while (fTrueForAny(xs)) { }
boolean fTrueForAny(List xs) {
for (Item x : xs) {
if (f(x)) {
return true;
}
}
return false;
}
There isn't anything non-imperative about higher order functions. var externalDataStore = new ExternalDataStore()
[1, 2, 3, 4].each(x => externalDataStore.store(x))
externalDataStore.getItems().each(item => print(item))
Plenty of higher order functions, and plenty of non-functional, ordered, stateful, imperative code.