1 pontos por GN⁺ 2024-11-14 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-11-14
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-expression pode ser encontrado no npm e no GitHub
    • Linguagens de programação deveriam ter parsers de verdade, e não usar expressões regulares como parser. Mas, se for usar expressões regulares, é melhor dividi-las em partes menores
  • Há 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

    • A CLI é uma funcionalidade comum, e por vir embutida no Raku é conveniente de usar
    • Grammars raramente são tratadas como "cidadãs de primeira classe" em linguagens de programação, e oferecem a capacidade de criar grammars usando programação orientada a objetos
  • 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 parecido

  • Levanta-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úmeros

  • Há 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 262144

  • A 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