Consecutivo Pregunta Ejemplo de Código
1 ¿Qué es la composición de funciones en la programación funcional?
/* Composición de funciones: Combina dos funciones en una sola. */
const compose = (f, g) => (x) => f(g(x));

// Ejemplo en JavaScript/TypeScript
const add1 = x => x + 1;
const multiply2 = x => x * 2;
const add1ThenMultiply2 = compose(multiply2, add1);
console.log(add1ThenMultiply2(3)); // 8
2 ¿Cómo se aplica la composición de funciones en Java?
import java.util.function.Function;

public class FunctionComposition {
    public static void main(String[] args) {
        Function add1 = x -> x + 1;
        Function multiply2 = x -> x * 2;
        Function add1ThenMultiply2 = add1.andThen(multiply2);
        System.out.println(add1ThenMultiply2.apply(3)); // 8
    }
}
3 ¿Cómo se aplica la composición de funciones en Python?
def add1(x):
    return x + 1

def multiply2(x):
    return x * 2

def compose(f, g):
    return lambda x: f(g(x))

add1_then_multiply2 = compose(multiply2, add1)
print(add1_then_multiply2(3))  # 8
4 ¿Cómo se aplica la composición de funciones en C#?
using System;

public class FunctionComposition {
    public static void Main() {
        Func add1 = x => x + 1;
        Func multiply2 = x => x * 2;
        Func add1ThenMultiply2 = x => multiply2(add1(x));
        Console.WriteLine(add1ThenMultiply2(3)); // 8
    }
}
5 ¿Qué es la currificación en la programación funcional?
/* Currificación: Transformar una función con múltiples argumentos en una secuencia de funciones con un solo argumento. */
const curry = (fn) => (a) => (b) => fn(a, b);

const add = (a, b) => a + b;
const curriedAdd = curry(add);
console.log(curriedAdd(1)(2)); // 3
6 ¿Cómo se implementa la currificación en Java?
import java.util.function.Function;

public class CurryingExample {
    public static void main(String[] args) {
        Function> add = a -> b -> a + b;
        Function add1 = add.apply(1);
        System.out.println(add1.apply(2)); // 3
    }
}
7 ¿Cómo se implementa la currificación en Python?
def curry_add(a):
    def add(b):
        return a + b
    return add

add1 = curry_add(1)
print(add1(2))  # 3
8 ¿Cómo se implementa la currificación en C#?
using System;

public class CurryingExample {
    public static void Main() {
        Func> add = a => b => a + b;
        var add1 = add(1);
        Console.WriteLine(add1(2)); // 3
    }
}
9 ¿Cómo se implementa la currificación en TypeScript?
const curryAdd = (a: number) => (b: number) => a + b;

const add1 = curryAdd(1);
console.log(add1(2)); // 3
10 ¿Qué es la transformación de datos en la programación funcional?
/* Transformación de datos: Aplicar funciones a datos para cambiar su forma o estructura. */
const numbers = [1, 2, 3];
const doubled = numbers.map(x => x * 2);
console.log(doubled); // [2, 4, 6]
11 ¿Cómo se realiza la transformación de datos en Java?
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class DataTransformation {
    public static void main(String[] args) {
        List numbers = Arrays.asList(1, 2, 3);
        List doubled = numbers.stream().map(x -> x * 2).collect(Collectors.toList());
        System.out.println(doubled); // [2, 4, 6]
    }
}
12 ¿Cómo se realiza la transformación de datos en Python?
numbers = [1, 2, 3]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # [2, 4, 6]
13 ¿Cómo se realiza la transformación de datos en C#?
using System;
using System.Linq;

public class DataTransformation {
    public static void Main() {
        var numbers = new[] { 1, 2, 3 };
        var doubled = numbers.Select(x => x * 2).ToArray();
        Console.WriteLine(string.Join(", ", doubled)); // 2, 4, 6
    }
}
14 ¿Cómo se realiza la transformación de datos en TypeScript?
const numbers = [1, 2, 3];
const doubled = numbers.map(x => x * 2);
console.log(doubled); // [2, 4, 6]
15 ¿Qué es una función de orden superior?
/* Función de orden superior: Función que acepta otras funciones como argumentos o devuelve una función. */
const applyFunction = (fn, value) => fn(value);

// Ejemplo en JavaScript/TypeScript
const square = x => x * x;
console.log(applyFunction(square, 5)); // 25
16 ¿Cómo se implementa una función de orden superior en Java?
import java.util.function.Function;

public class HigherOrderFunction {
    public static void main(String[] args) {
        Function square = x -> x * x;
        System.out.println(applyFunction(square, 5)); // 25
    }

    private static int applyFunction(Function fn, int value) {
        return fn.apply(value);
    }
}
17 ¿Cómo se implementa una función de orden superior en Python?
def apply_function(fn, value):
    return fn(value)

def square(x):
    return x * x

print(apply_function(square, 5))  # 25
18 ¿Cómo se implementa una función de orden superior en C#?
using System;

public class HigherOrderFunction {
    public static void Main() {
        Func square = x => x * x;
        Console.WriteLine(ApplyFunction(square, 5)); // 25
    }

    private static int ApplyFunction(Func fn, int value) {
        return fn(value);
    }
}
19 ¿Cómo se implementa una función de orden superior en TypeScript?
const applyFunction = (fn: (x: number) => number, value: number): number => fn(value);

const square = (x: number): number => x * x;

console.log(applyFunction(square, 5)); // 25
20 ¿Qué es la función `map` y cómo se utiliza en programación funcional?
/* La función map aplica una función a cada elemento de una colección. */
const numbers = [1, 2, 3];
const doubled = numbers.map(x => x * 2);
console.log(doubled); // [2, 4, 6]
21 ¿Cómo se utiliza la función `map` en Java?
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class MapFunction {
    public static void main(String[] args) {
        List numbers = Arrays.asList(1, 2, 3);
        List doubled = numbers.stream().map(x -> x * 2).collect(Collectors.toList());
        System.out.println(doubled); // [2, 4, 6]
    }
}
22 ¿Cómo se utiliza la función `map` en Python?
numbers = [1, 2, 3]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # [2, 4, 6]
23 ¿Cómo se utiliza la función `map` en C#?
using System;
using System.Linq;

public class MapFunction {
    public static void Main() {
        var numbers = new[] { 1, 2, 3 };
        var doubled = numbers.Select(x => x * 2).ToArray();
        Console.WriteLine(string.Join(", ", doubled)); // 2, 4, 6
    }
}
24 ¿Cómo se utiliza la función `map` en TypeScript?
const numbers = [1, 2, 3];
const doubled = numbers.map(x => x * 2);
console.log(doubled); // [2, 4, 6]
25 ¿Qué es la función `filter` y cómo se utiliza en programación funcional?
/* La función filter selecciona elementos de una colección que cumplen con una condición. */
const numbers = [1, 2, 3, 4];
const even = numbers.filter(x => x % 2 === 0);
console.log(even); // [2, 4]
26 ¿Cómo se utiliza la función `filter` en Java?
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class FilterFunction {
    public static void main(String[] args) {
        List numbers = Arrays.asList(1, 2, 3, 4);
        List even = numbers.stream().filter(x -> x % 2 == 0).collect(Collectors.toList());
        System.out.println(even); // [2, 4]
    }
}
27 ¿Cómo se utiliza la función `filter` en Python?
numbers = [1, 2, 3, 4]
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)  # [2, 4]
28 ¿Cómo se utiliza la función `filter` en C#?
using System;
using System.Linq;

public class FilterFunction {
    public static void Main() {
        var numbers = new[] { 1, 2, 3, 4 };
        var even = numbers.Where(x => x % 2 == 0).ToArray();
        Console.WriteLine(string.Join(", ", even)); // 2, 4
    }
}
29 ¿Cómo se utiliza la función `filter` en TypeScript?
const numbers = [1, 2, 3, 4];
const even = numbers.filter(x => x % 2 === 0);
console.log(even); // [2, 4]
30 ¿Qué es la función `reduce` y cómo se utiliza en programación funcional?
/* La función reduce acumula valores en una colección para obtener un único resultado. */
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, x) => acc + x, 0);
console.log(sum); // 10
31 ¿Cómo se utiliza la función `reduce` en Java?
import java.util.Arrays;
import java.util.List;

public class ReduceFunction {
    public static void main(String[] args) {
        List numbers = Arrays.asList(1, 2, 3, 4);
        int sum = numbers.stream().reduce(0, (acc, x) -> acc + x);
        System.out.println(sum); // 10
    }
}
32 ¿Cómo se utiliza la función `reduce` en Python?
from functools import reduce

numbers = [1, 2, 3, 4]
sum = reduce(lambda acc, x: acc + x, numbers, 0)
print(sum)  # 10
33 ¿Cómo se utiliza la función `reduce` en C#?
using System;
using System.Linq;

public class ReduceFunction {
    public static void Main() {
        var numbers = new[] { 1, 2, 3, 4 };
        var sum = numbers.Aggregate(0, (acc, x) => acc + x);
        Console.WriteLine(sum); // 10
    }
}
34 ¿Cómo se utiliza la función `reduce` en TypeScript?
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, x) => acc + x, 0);
console.log(sum); // 10