Arthur Brandao преди 6 години
родител
ревизия
43b56d7498
променени са 1 файла, в които са добавени 22 реда и са изтрити 2 реда
  1. 22 2
      src/migl/util/ConsListImpl.java

+ 22 - 2
src/migl/util/ConsListImpl.java

@@ -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