Excel es Considerado un Lenguaje de Programación

0
1100

LAMBDA: la última función de hoja de cálculo de Excel

Desde su lanzamiento en la década de 1980, Microsoft Excel ha cambiado la forma en que las personas organizan, analizan y visualizan sus datos, proporcionando una base para la toma de decisiones para los millones de personas que lo usan cada día. También es el lenguaje de programación más utilizado del mundo . Las fórmulas de Excel están escritas por un orden de magnitud más de usuarios que todos los programadores de C, C ++, C #, Java y Python del mundo juntos. A pesar de su éxito, considerado como un lenguaje de programación Excel tiene debilidades fundamentales. A lo largo de los años, se han destacado dos deficiencias particulares: (1) el lenguaje de fórmulas de Excel realmente solo admitía valores escalares (números, cadenas y booleanos) y (2) no permitía a los usuarios definir nuevas funciones.

Hasta ahora.

El proyecto Calc Intelligence en Microsoft Research Cambridge tiene una asociación de larga data con el equipo de Excel para transformar fórmulas de hojas de cálculo en un lenguaje de programación completo. Los frutos de esa asociación comienzan a aparecer en el producto en sí. En el Simposio ACM SIGPLAN de 2019 sobre principios de lenguajes de programación (POPL 2019), anunciamos dos desarrollos significativos : los tipos de datos llevan Excel más allá del texto y los números y permiten que las celdas contengan registros de primera clase, incluidas entidades vinculadas a datos externos y matrices dinámicas. Permiten que las fórmulas ordinarias calculen matrices completas que se derraman en celdas adyacentes. Estos cambios son un comienzo sustancial en nuestro primer desafío: datos estructurados ricos y de primera clase en Excel.

En diciembre de 2020, anunciamos LAMBDA , que permite a los usuarios definir nuevas funciones escritas en el propio lenguaje de fórmulas de Excel, abordando directamente nuestro segundo desafío. Estas funciones recién definidas pueden llamar a otras funciones definidas por LAMBDA, a profundidad arbitraria, incluso de forma recursiva. Con LAMBDA, Excel se ha convertido en Turing completo . Ahora puede, en principio, escribir cualquier cálculo en el lenguaje de fórmulas de Excel. LAMBDA está disponible para los miembros del programa Insiders: Beta. La versión inicial tiene algunas restricciones de implementación que esperamos eliminar en el futuro.

Excel es una herramienta que facilita nuestras tareas y actividades diarias, recopilar, almacenar, administrar y analizar información. Además, Excel tiene más usuarios que C, C++, C#, Java y Python juntos (Fuente: Genbeta 2021). 

Sintaxis

=LAMBDA(cálculo[parámetro1; parámetro2;…;] )    

argumentoDescripción
parámetroEs un valor que desea pasar a la función, como una referencia de celda, una cadena o un número. Puede introducir hasta 253 parámetros. Este argumento es opcional.
cálculoLa fórmula que desea ejecutar y devolver como resultado de la función. Debe ser el último argumento y debe devolver un resultado. Este argumento es obligatorio.

Observaciones

  • Si especifica más de 253 parámetros, Excel devuelve un #VALUE! .
  • Si se pasa un número incorrecto de argumentos a una función LAMBDA, Excel devuelve un #VALUE! .
  • Si llama a una función LAMBDA desde dentro de sí misma y la llamada es circular, Excel devuelve un #NUM! .
  • Si crea una función lambda en una celda sin llamarla también desde dentro de la celda, Excel devuelve un #CALC! .
  • Los nombres y parámetros Lambda siguen las reglas de sintaxis de Excel para los nombres, con una excepción: no use un punto (.) en un nombre de parámetro. Para obtener más información, vea Nombres en fórmulas.
  • Asegúrese de seguir los procedimientos recomendados al crear una función LAMBDA como lo hace con cualquier fórmula nativa de Excel, como pasar el número y tipo de argumentos correctos, hacer coincidir paréntesis de apertura y cierre, y escribir números como sin formato. Además, cuando utiliza el comando Evaluar, Excel devuelve inmediatamente el resultado de la función LAMBDA y no puede entrar en ella. Para obtener más información, vea Detectar errores en las fórmulas.

Ejemplos: inversión recursiva de un combinador de cadena y punto fijo

La inversión de una cadena va más allá de las funciones integradas de Excel y solo se podía escribir anteriormente fuera del lenguaje de fórmulas mediante Visual Basic o JavaScript. Aquí hay una definición de REVERSE como un LAMBDA recursivo, que hace uso de un par de funciones auxiliares, HEAD y TAIL, para calcular el primer carácter y todo menos el primer carácter, respectivamente.

Incluso sin depender de un nombre definido de forma recursiva, el lenguaje de fórmulas es Turing completo porque podemos codificar definiciones de funciones recursivas utilizando el clásico combinador de punto fijo de llamada por valor. De hecho, ejecutar este combinador fue una de las primeras pruebas de estrés de LAMBDA en la base de código de Excel. Aquí está, aplicado para definir una función factorial.

Fuente :
https://www.youtube.com/watch?v=tfz4jdwsEaQ
https://www.microsoft.com/
https://support.microsoft.com/

Comentarios