static L findAllFiles_noDirs_pred(File dir, O pred) { new L l; if (isTrue_callF(pred, dir)) findAllFiles_noDirs_pred_impl(dir, pred, l); ret l; } svoid findAllFiles_noDirs_pred_impl(File dir, O pred, L l) { for (File f : listFiles(dir)) { if (!isTrue_callF(pred, f)) continue; if (f.isDirectory()) findAllFiles_noDirs_pred_impl(f, pred, l); else l.add(f); } }