Wie ihr schon gemerkt habt, tobe ich mich zur Zeit im Experimental-Branch aus. Zuallererst: Das Ding ist und bleibt experimentell, es sei denn, es findet allgemeine Zustimmung.
Hier der Plan in meinem Hinterkopf:
- das List-Interface ist der Dreh- und Angelpunkt, das muss wirklich bequem zu benutzen sein. Eventuell könnte es später zu “NecoList” umbenannt werden (wenn der ganze brauchbare Code von selbiger verwurstet wurde)
- das Sequence-Interface ist weniger wichtig, und über seine Ausrichtung kann man sicher diskutieren. Vor allem passt zur Zeit kein Set oder Dequeue hinein, es war nur eine Idee, um die Stream-Klasse irgendwie zu erfassen
- LazyList und StrictList sollen die Zugpferde unter der Haube werden, und möglichst konform und geräuschlos arbeiten
- Eine Liste als Array-Wrapper wäre nett (die bei Änderungen langsam ist, da ein arraycopy benötig wird, dafür schnellen wahlfreien Zugriff bietet)
- Sehr wichtig wäre ein Wrapper, der mit einer unserer Listen eine mutable Java-Liste realisiert
- Die List-Methoden sind noch ziemlich im Fluss:
** cons ist von der Verwendung her ein Grauen, ich schwenke auf plus um (wäre “push” oder “prepend” ein besserer Name?), auch mit einer varargs-Variante
** es fehlen Methoden zum indizierten ändern, einfügen oder löschen von Werten
** es fehlen zip-Methoden
** es fehlen append-Methoden
** die fold- und scan-Methoden sind wohl zu umfangreich
** die statischen Listen-Methoden brauchen eine geeignete Klasse
** mal sehen, ob die Methoden isLazy, lazy und strict eine gute Idee sind, bin nicht überzeugt…