Funciones

Programación funcional y reactiva - Computación

Profesor: Ing. Santiago Quiñones

Docente Investigador

Departamento de Ingeniería Civil

Contenidos

Func. matemáticas hacia la programación funcional

Funciones matemáticas

Algo para recordar

Funciones matemáticas

Algo para recordar

Funciones matemáticas a código. Expresiones

Funciones matemáticas a código.

Funciones matemáticas a código.

Definir función que tome un entero n y calcule el factorial de n

Funciones matemáticas a código.

Definir función que tome un entero n y calcule el factorial de n

Funciones puras

Funciones puras

Antitesis

public class Counter {

    private int counter = 0;

    public int incrementCounter() {
        return ++counter;
    }

    public int multiplyCounter(int num) {
        counter *= num;
        return counter;
    }

    public int getCounter() {
        return counter;
    }
}

Funciones puras

Antitesis

Funciones puras

Principales características

Funciones puras

Implementación en Scala

object Counter {
  // Función pura que incrementa un contador
  def incrementCounter(counter: Int): Int = {
    counter + 1
  }

  // Función pura que multiplica el contador
  def multiplyCounter(counter: Int, num: Int): Int = {
    counter * num
  }

  // Función pura que devuelve el valor del contador (en este caso innecesario porque el valor del contador
  // no necesita una función, simplemente se usa directamente)
  def getCounter(counter: Int): Int = {
    counter
  }
}

// Uso de las funciones
val currentCounter = 5
val incremented = Counter.incrementCounter(currentCounter)
val multiplied = Counter.multiplyCounter(currentCounter, 2)

println(s"Incremented: $incremented")  // Imprimirá 6
println(s"Multiplied: $multiplied")    // Imprimirá 10

Funciones vs Métodos

Trabajo en grupo

Funciones matemáticas vs Métodos (Leng. Prog.)

Diferencias conceptuales

  • En matemáticas, una función no tiene "estado". Su única misión es transformar los valores de entrada en una salida. No existen efectos secundarios.
  • En los lenguajes de programación, un método podría modificar el estado interno de un objeto o tener efectos como imprimir en la consola o alterar el contenido de una variable externa.

Trabajo de consulta

Trabajo de consulta

¿Qué son las funciones anónimas?