-
Cinco funciones inusuales de Raku
- Raku es como un laboratorio para experimentar con distintas características del lenguaje. Ofrece varios modelos de concurrencia y diversas funciones, y la forma en que cada una interactúa entre sí es única.
-
Junctions
- Los junctions representan una superposición de valores posibles y se usan para expresar fórmulas lógicas.
- Aplican operaciones a todos los valores y se utilizan convirtiéndolos a boolean.
- Raku expresa cuantificadores de forma elegante mediante junctions.
-
Whatevers
* es el símbolo "whatever" y cumple varios roles.
- En rangos o secuencias significa "unbound" y se transforma en una función anónima.
- Es útil porque varios métodos de Raku están sobrecargados para aceptar funciones.
-
Expresiones regulares
- Raku ofrece una sintaxis nueva, distinta de las expresiones regulares tradicionales compatibles con POSIX y Perl.
- Las expresiones regulares se pueden combinar y dividir en partes más simples y legibles.
- Admite gramáticas de análisis sintáctico como una función integrada del lenguaje.
-
Hyperoperators
l>>.method es básicamente similar a map y desciende recursivamente incluso a las sublistas.
- Los operadores hiper binarios aplican operaciones elemento por elemento sobre dos listas.
- Son útiles para ejecutar la misma fórmula sobre múltiples entradas.
-
Sintaxis de pares
- Los hashes de Raku están compuestos por pares
key => value, y mediante la "sintaxis de dos puntos" se pueden especificar pares de forma concisa.
:key y :!key se mapean respectivamente a key => True y key => False.
- Esto permite configuraciones de métodos muy concisas.
-
El laboratorio de próxima generación: Slangs y RakuAST
- Slangs es una función que modifica la sintaxis de Raku y permite, por ejemplo, cambiar la sintaxis de los bucles o alterar identificadores.
- RakuAST permite parsear todas las expresiones de Raku como AST desde dentro de Raku.
-
Experimento adicional
- Raku ofrece un conjunto preinstalado de módulos de terceros mediante la instalación de "Rakudo Star".
- Es una excelente solución intermedia entre la carga de mantener una gran biblioteca estándar y la carga para el usuario de encontrar el paquete adecuado.
-
Blogs recomendados
- Los blogs de Elizabeth Mattijsen y Codesections ofrecen mucha información sobre el interior de Raku.
- El Raku Advent Calendar es un excelente recurso sobre técnicas avanzadas de Raku.
1 comentarios
Comentarios en Hacker News
Se presenta una función de expresiones regulares componibles implementada de forma independiente en JavaScript, una biblioteca usada con frecuencia en varios proyectos. Esta función da una sensación un poco más cercana a usar parsers de primera clase dentro del lenguaje. Como ejemplo, se comparte un caso de implementación de parseo de tipos MIME
templated-regular-expressionestá disponible en npm y GitHubHay quien opina que preferiría dejar la industria antes que dar mantenimiento a una base de código en Raku
El problema de velocidad de Raku sigue sin resolverse, y la versión más reciente de Raku tarda 6.5 veces más que Python 3.13 en parsear archivos de registro
Las funciones principales de Raku son el CLI y las gramáticas
Hyper parece una versión más ad hoc de los recursion schemes, y es similar a
_en Scala. Le encanta Scala por las lambdas y piensa que todos los lenguajes deberían adoptar algo parecidoSe plantea la duda de por qué
(2, 30, 4, 50).map(* + *)devuelve(32, 45)y si no debería devolver(32, 54). Esto podría deberse a diferencias en la forma de expresar números en algunos paísesHay una opinión sobre si Perl ahora está sirviendo como puerta de entrada a los lenguajes de la familia APL
Expresa sorpresa de que
(2,4,8...*)[17]devuelva 262144Usa Raku en entornos reales y cree que es el mejor lenguaje para procesamiento de texto. Construir parsers es muy bueno, y le sorprende que no sea el lenguaje óptimo para crear pipelines de texto con LLM
Ha seguido este proyecto durante mucho tiempo; le parece interesante, pero lamenta que Perl 6 se haya visto muy obstaculizado por este proyecto