private final SubLList mapResult(UnaryFunction function, boolean returnConsedResults) { SubLList result = SubLNil.NIL; for (SubLObject cur = this; cur != SubLNil.NIL; cur = cur.rest()) { final SubLObject curResult = function.processItem(cur.first()); if (returnConsedResults) { result = SubLObjectFactory.makeCons(curResult, result); } } if (returnConsedResults) { return result.asConsList().reverse(true).toList(); } return result; }
public SubLList assoc(SubLObject item, BinaryFunction test, UnaryFunction key) { SubLObject currentItem = null; SubLList result = SubLNil.NIL; SubLListListIterator iter = null; Resourcer resourcer = Resourcer.getInstance(); SubLList curAssoc; try { iter = resourcer.acquireSubLListListIterator(this); while (iter.hasNext()) { curAssoc = iter.nextSubLObject().toList(); if (SubLNil.NIL != test.processItem(item, key.processItem(curAssoc.first()))) { result = curAssoc; break; } } } finally { resourcer.releaseSubLListListIterator(iter); } return result; }