Experimental Branch

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…