Funciones parciales en Scala

Introducción:
cuando una función no puede producir un retorno para cada dato de entrada variable que se le proporciona, esa función se denomina función parcial . Solo puede determinar una salida para un subconjunto de algunas entradas practicables. Solo se puede aplicar parcialmente a las entradas indicadas.
Algunos puntos importantes:

  • Las funciones parciales son beneficiosas para comprender muchos tipos inconsistentes de funciones de Scala.
  • Se puede interpretar utilizando declaraciones de casos.
  • Es un rasgo, que necesita dos métodos, a saber, isDefinedAt y apply para implementarse.

Ejemplo:

// Scala program of 
// Partial function
  
// Creating object 
object Case
{
  
    // Main method
    def main(args: Array[String])
    {
  
        // Creating Partial function 
        // using two methods
        val r = new PartialFunction[Int, Int] 
        {
  
            // Applying isDefinedAt method 
            def isDefinedAt(q: Int) = q != 0
  
            // Applying apply method
            def apply(q: Int) = 12 * q
  
        } 
  
        // Displays output if the
        // condition is satisfied
        println(r(10))
    }
}
Producción:

120

Aquí, se definen dos métodos para aplicar la función Parcial, donde isDefinedAt establece la condición y apply realiza la operación si se cumple la condición dada.
Métodos para definir funciones parciales:
existen algunos métodos para definir funciones parciales, que incluyen declaraciones de casos , método de recopilación , y luego y o si no .

  • Función parcial usando la declaración Case:
    crearemos una función parcial a continuación usando la declaración Case.
    Ejemplo:

    // Scala program using
    // case statements
      
    // Creating object 
    object Case
    {
      
        // Main method
        def main(args: Array[String])
        {
      
            // Creating Partial function
            val d: PartialFunction[Int, Int] =
            {
      
                // using case statement 
                case x if (x % 3) == 0 => x * 3
            }
      
            // Displays output if 
            // the condition is 
            // satisfied
            println(d(3))
        }
    }
    Producción:

    9
    

    Aquí, la función parcial se crea utilizando la declaración de caso , por lo que no se requiere aplicar y isDefinedAt aquí.

  • Función parcial usando orElse:
    este método es útil para enstringr funciones parciales.
    Ejemplo:

    // Scala program using
    // orElse
      
    // Creating object 
    object orElse
    {
      
        // Main method
        def main(args: Array[String])
        {
      
            // Creating Partial function1
            val M: PartialFunction[Int, Int] = 
            {
      
                // using case statement 
                case x if (x % 5) == 0 => x * 5
            }
      
            // Creating Partial function2 
            val m: PartialFunction[Int, Int] = 
            {
      
                // using case statement 
                case y if (y % 2) == 0 => y * 2
            }
      
            // chaining two partial 
            // functions using orElse 
            val r = M orElse m
      
            // Displays output for 
            // which the given condition 
            // is satisfied
            println(r(5))
            println(r(4))
        }
    }
    Producción:

    25
    8
    

    Aquí, orElse devolverá la salida para la cual se cumple la condición dada.

  • Función parcial utilizando el método
    Collect: el método Collect solicita una función parcial para cada elemento de la colección y, por lo tanto, ayuda a construir una nueva colección.
    Ejemplo:

    // Scala program using
    // collect method
      
    // Creating object 
    object Collect
    {
      
        // Main method
        def main(args: Array[String])
        {
      
            // Creating Partial function
            val M: PartialFunction[Int, Int] = 
            {
      
                // using case statement 
                case x if (x % 5) != 0 => x * 5
            }
      
            // Applying collect method
            val y = List(7, 15, 9) collect { M }
      
            // Displays output for which 
            // the given condition 
            // is satisfied
            println(y)
        }
    }
    Producción:

    List(35, 45)
    

    Aquí, Collect aplicará la función Parcial a todos los elementos de la Lista y devolverá una nueva Lista sobre la base de las condiciones establecidas.

  • Función parcial usando andThen:
    este método se agrega al final de las strings, que se utiliza para continuar hacia strings adicionales de funciones parciales.
    Ejemplo:

    // Scala program using
    // andThen method
      
    // Creating object 
    object andThen
    {
      
        // Main method
        def main(args: Array[String])
        {
      
            // Creating Partial function
            val M: PartialFunction[Int, Int] =
            {
      
                // using case statement 
                case x if (x % 4) != 0 => x * 4
            }
      
            // Creating another function
            val append = (x: Int) => x * 10
      
            // Applying andThen method 
            val y = M andThen append
      
            // Displays output after 
            // appending the another
            // function given
            println(y(7))
        }
    }
    Producción:

    280
    

    Aquí, andThen agregará la salida de la función Parcial con la otra función dada y luego devolverá ese valor.

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *