mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 02:20:57 +00:00
add more linkedlist methods
This commit is contained in:
@@ -17,7 +17,7 @@ public sealed interface LinkedList<T> extends Monad<T, LinkedList<?>>, Monoid<T,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
default <T1> LinkedList<T1> pure(T1 t) {
|
default <T1> LinkedList<T1> pure(T1 t) {
|
||||||
return new Cons<>(t, empty());
|
return of(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -32,12 +32,18 @@ public sealed interface LinkedList<T> extends Monad<T, LinkedList<?>>, Monoid<T,
|
|||||||
return get(0);
|
return get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LinkedList<T> tail();
|
||||||
|
|
||||||
int length();
|
int length();
|
||||||
|
|
||||||
Maybe<T> get(int index);
|
Maybe<T> get(int index);
|
||||||
|
|
||||||
LinkedList<T> add(T value);
|
LinkedList<T> add(T value);
|
||||||
|
|
||||||
|
default LinkedList<T> prepend(T value) {
|
||||||
|
return new Cons<>(value, this);
|
||||||
|
}
|
||||||
|
|
||||||
<C extends Collection<T>> C toCollection(C collection);
|
<C extends Collection<T>> C toCollection(C collection);
|
||||||
|
|
||||||
default List<T> toList() {
|
default List<T> toList() {
|
||||||
@@ -115,6 +121,11 @@ public sealed interface LinkedList<T> extends Monad<T, LinkedList<?>>, Monoid<T,
|
|||||||
return (LinkedList<U>) this;
|
return (LinkedList<U>) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedList<T> tail() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int length() {
|
public int length() {
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user