
J. Fernando Zuñiga Ortiz
PreguntaUna 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?

Diego Mora
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!