|
@@ -69,8 +69,28 @@ public class ConsListImpl<E> extends Cons<E, ConsList<E>> implements ConsList<E>
|
|
|
|
|
|
@Override
|
|
|
public <T> ConsList<T> map(Function<E, T> f) {
|
|
|
- // TODO Auto-generated method stub
|
|
|
- return null;
|
|
|
+ ConsList<T> result = new ConsEmptyList<>();
|
|
|
+ for(E e : this) {
|
|
|
+ result = result.append(f.apply(e));
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+
|
|
|
+ /*
|
|
|
+ //Version avec prepend
|
|
|
+ ConsList<E> list[] = new ConsList[this.size];
|
|
|
+ //Recuperation des elements de la liste
|
|
|
+ ConsList<E> actual = this;
|
|
|
+ for(int i = 0; i < this.size; i++) {
|
|
|
+ list[i] = actual;
|
|
|
+ actual = actual.cdr();
|
|
|
+ }
|
|
|
+ //Creation nouvelle liste
|
|
|
+ ConsList<T> result = new ConsEmptyList<>();
|
|
|
+ for(int i = this.size - 1; i > -1; i--) {
|
|
|
+ result = result.prepend(f.apply(list[i].car()));
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ //*/
|
|
|
}
|
|
|
|
|
|
@Override
|