add more linkedlist methods

This commit is contained in:
dfsek
2026-01-02 03:04:19 -07:00
parent eae5a60cf9
commit 966bcab370

View File

@@ -17,7 +17,7 @@ public sealed interface LinkedList<T> extends Monad<T, LinkedList<?>>, Monoid<T,
@Override
default <T1> LinkedList<T1> pure(T1 t) {
return new Cons<>(t, empty());
return of(t);
}
@Override
@@ -32,12 +32,18 @@ public sealed interface LinkedList<T> extends Monad<T, LinkedList<?>>, Monoid<T,
return get(0);
}
LinkedList<T> tail();
int length();
Maybe<T> get(int index);
LinkedList<T> add(T value);
default LinkedList<T> prepend(T value) {
return new Cons<>(value, this);
}
<C extends Collection<T>> C toCollection(C collection);
default List<T> toList() {
@@ -115,6 +121,11 @@ public sealed interface LinkedList<T> extends Monad<T, LinkedList<?>>, Monoid<T,
return (LinkedList<U>) this;
}
@Override
public LinkedList<T> tail() {
return this;
}
@Override
public int length() {
return 0;