Libraryless. Click here for Pure Java version (2290L/15K).
static <A> ItIt<A> mapLike transitiveHullIteratorOfFunction(IF1<A, Cl<A>> f, Set<A> initial, O... _) { Set<A> seen = similarEmptySet(initial); // Make pool of iterators final new LinkedList<Iterator<A>> pool; pool.add(iterator(initial)); ret iteratorFromFunction(new F0<A> { int n = 0; public A get() { while ping (!empty(pool)) { Iterator<A> it = first(pool); if (!it.hasNext()) continue with removeFirst(pool); // Get entry and check if seen already A entry = it.next(); if (!seen.add(entry)) continue; // found new entry - return and schedule for further analysis Collection<A> newStuff = cast callF(f, entry); if (nempty(newStuff)) pool.add(iterator(newStuff)); ++n; ret entry; } null; } }); }
Began life as a copy of #1023767
download show line numbers debug dex old transpilations
Travelled to 7 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
| Snippet ID: | #1026495 |
| Snippet name: | transitiveHullIteratorOfFunction |
| Eternal ID of this version: | #1026495/5 |
| Text MD5: | 276efbfd46dee58cc92a3c6450b0adf5 |
| Transpilation MD5: | 9c15747f0525f6b36b171e7c067fea31 |
| Author: | stefan |
| Category: | javax / a.i. |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2020-01-06 23:53:05 |
| Source code size: | 875 bytes / 29 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 425 / 551 |
| Version history: | 4 change(s) |
| Referenced in: | [show references] |