Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

0x6 - Restricciones sobre Programación Funcional

Universidad Nacional de Rio Negro - Sede Andina

Serie 0x6 - Restricciones sobre Programación Funcional

0x6000 - No usar expresiones lambda

Explicación

Las expresiones lambda (->) no están permitidas en este curso.

Incorrecto ❌:

lista.forEach(elemento -> System.out.println(elemento));
numeros.stream().filter(n -> n > 10).collect(Collectors.toList());

Correcto ✅:

for (String elemento : lista) {
    System.out.println(elemento);
}

List<Integer> mayoresADiez = new ArrayList<>();
for (Integer n : numeros) {
    if (n > 10) {
        mayoresADiez.add(n);
    }
}

0x6001 - No usar referencias a métodos (method references)

Explicación

Las referencias a métodos (::) no están permitidas.

Incorrecto ❌:

lista.forEach(System.out::println);
nombres.stream().map(String::toUpperCase).collect(Collectors.toList());

Correcto ✅:

for (String elemento : lista) {
    System.out.println(elemento);
}

List<String> nombresMayusculas = new ArrayList<>();
for (String nombre : nombres) {
    nombresMayusculas.add(nombre.toUpperCase());
}

0x6002 - No usar la API de Streams

Explicación

La API java.util.stream no está permitida en este curso. Usar bucles explícitos.

Incorrecto ❌:

int suma = numeros.stream()
    .filter(n -> n % 2 == 0)
    .mapToInt(Integer::intValue)
    .sum();

Correcto ✅:

int suma = 0;
for (Integer numero : numeros) {
    if (numero % 2 == 0) {
        suma = suma + numero;
    }
}

0x6004 - No usar métodos funcionales de colecciones

Explicación

Métodos como forEach(), removeIf(), replaceAll() no están permitidos. Usar iteradores o bucles.

Correcto ✅:

Iterator<String> it = nombres.iterator();
while (it.hasNext()) {
    if (it.next().startsWith("A")) {
        it.remove();
    }
}

0x6005 - No usar Collectors ni operaciones de reducción

Explicación

Usar bucles explícitos para agregaciones y transformaciones.

0x6006 - Preferir bucles for tradicionales o enhanced sobre operaciones funcionales

Explicación

Los bucles son más explícitos y pedagógicos para entender el flujo de control.

0x6007 - No usar el patrón de composición funcional

Explicación

Evitar encadenar operaciones funcionales. Usar métodos y asignaciones explícitas.