Una pregunta, el 1l en el foldleft es únicamente para determinar el valor inicial o también el tipo de valores que recibirá la función?

J. Fernando Zuñiga Ortiz

J. Fernando Zuñiga Ortiz

Pregunta
studenthace 4 años

Una pregunta, el 1l en el foldleft es únicamente para determinar el valor inicial o también el tipo de valores que recibirá la función?

1 respuestas
para escribir tu comentario
    Diego Mora

    Diego Mora

    studenthace 4 años

    El 1L se usa para decirle de forma explícita al compilador que el valor 1 que estás ingresando a la función es de tipo Long, si no fuese de esta forma, la función podría retornar un entero por la forma en que está definida la función en SCALA:

    def foldLeft[B](z: B)(op: (B, A) ⇒ B): B

    Si te fijas, toda la operación retorna un valor del mismo tipo que el del Inicial y del mismo modo el rango de la función op debe estar contenido en B ( Para efectos prácticos, el rango es el mismo tipo).

    Por otro lado se usa en este caso porque la operación del factorial puede llegar a retornar números realmente grandes y si son guardados en un valor de tipo Int se podría tener un OverFlow. Déjame saber si tienes alguna otra duda!

Curso de Programación Funcional con Scala

Curso de Programación Funcional con Scala

Aprende desde cero la programación funcional con Scala. Descubre funciones, inmutabilidad, colecciones, patrones y más. Integra bases de datos con Slick y gestiona errores en aplicaciones robustas con Play Framework.

Curso de Programación Funcional con Scala
Curso de Programación Funcional con Scala

Curso de Programación Funcional con Scala

Aprende desde cero la programación funcional con Scala. Descubre funciones, inmutabilidad, colecciones, patrones y más. Integra bases de datos con Slick y gestiona errores en aplicaciones robustas con Play Framework.