-
Cinco recursos peculiares do Raku
- O Raku é como um laboratório para experimentar diversos recursos de linguagem. Ele oferece vários modelos de concorrência e diferentes funcionalidades, e a forma como esses recursos interagem entre si é única.
-
Junctions
- Junctions representam uma sobreposição de valores possíveis e são usadas para expressar fórmulas lógicas.
- Aplicam operações a todos os valores e são usadas por meio de conversão para boolean.
- O Raku expressa quantificadores de forma elegante por meio de junctions.
-
Whatevers
* é o símbolo de "whatever" e desempenha vários papéis.
- Em intervalos ou sequências, significa "unbound" e é convertido em função anônima.
- Como vários métodos do Raku são sobrecarregados para receber funções, isso é útil.
-
Expressões regulares
- O Raku oferece uma nova sintaxe diferente das expressões regulares tradicionais compatíveis com POSIX e Perl.
- É possível combinar expressões regulares e dividi-las em partes mais simples e legíveis.
- Ele oferece suporte a gramáticas de parsing como recurso nativo da linguagem.
-
Hyperoperators
l>>.method é basicamente semelhante a map e desce recursivamente até sublistas.
- Operadores hiper binários aplicam operações elemento por elemento em duas listas.
- São úteis para executar a mesma fórmula em várias entradas.
-
Sintaxe de pares
- Os hashes do Raku são compostos por pares
key => value, e a "colon syntax" permite especificá-los de forma concisa.
:key e :!key correspondem, respectivamente, a key => True e key => False.
- Isso permite configurar métodos de forma extremamente concisa.
-
O laboratório da próxima geração: Slangs e RakuAST
- Slangs são um recurso que modifica a sintaxe do Raku, permitindo alterar sintaxe de loops, mudar identificadores e mais.
- O RakuAST permite analisar todas as expressões do Raku como AST dentro do próprio Raku.
-
Experimento bônus
- O Raku oferece um conjunto de módulos de terceiros pré-instalados por meio da instalação "Rakudo Star".
- Isso é um excelente meio-termo entre a carga de manter uma grande biblioteca padrão e a carga para o usuário de encontrar o pacote adequado.
-
Recomendação de blog
- Os blogs de Elizabeth Mattijsen e Codesections oferecem muitas informações sobre o funcionamento interno do Raku.
- O Raku Advent Calendar é um excelente material sobre técnicas avançadas de Raku.
1 comentários
Comentários do Hacker News
Apresenta um recurso de expressões regulares compostas implementado de forma independente em JavaScript, uma biblioteca usada com frequência em vários projetos. Esse recurso faz a linguagem parecer um pouco mais próxima de ter parsers de primeira classe. Compartilha como exemplo um caso de implementação de parsing de media types
templated-regular-expressionpode ser encontrado no npm e no GitHubHá a opinião de que a pessoa preferiria sair da indústria a ter de manter uma codebase em Raku
O problema de desempenho do Raku ainda não foi resolvido, e o Raku mais recente ainda leva 6,5 vezes mais tempo que o Python 3.13 para fazer parsing de arquivos de log
Os principais recursos do Raku são a CLI e as grammars
Hyper parece uma versão mais ad hoc de recursion schemes, semelhante ao
_do Scala. A pessoa diz amar Scala por causa das lambdas e acha que toda linguagem deveria adotar algo parecidoLevanta-se a dúvida sobre
(2, 30, 4, 50).map(* + *)retornar(32, 45), e se não deveria retornar(32, 54). Isso pode ser por causa de diferenças na forma como alguns países representam númerosHá a opinião de que Perl agora serve como porta de entrada para linguagens da família APL
Há surpresa com
(2,4,8...*)[17]retornar 262144A pessoa usa Raku em ambiente real e considera que é a melhor linguagem para processamento de texto. Diz que construir parsers nela é excelente e acha surpreendente que não seja a linguagem ideal para criar pipelines de texto com LLM
Acompanha este projeto há muito tempo, acha-o interessante, mas lamenta que o Perl 6 tenha sido bastante prejudicado por causa dele