Perguntas com a marcação «raku»

8
Números racionais em Raku

Estou usando o Raku para alguns cálculos, porque possui bons tipos numéricos. No entanto, tenho um problema ao usar '.raku' say (1/6+1/6).raku #<1/3> Nós obtemos isso. Contudo, say (1/10+1/10).raku #0.2 Isso é um bug? Eu esperava <1/5>. O que

8
Restrição de assinatura em papéis no raku

Talvez esteja faltando alguma coisa, mas eu gostaria de saber se existe um bom motivo para esse código ser compilado role L { method do-l (Int, Int --> Int ) { ... } } class A does L { method do-l (Int $a, Real $b --> Str) { .Str ~ ": Did you expect Int?" with $a + $b } } my $a =...

8
Reestruturar uma lista de pares

Considerar .say for (1,2,2).rotor(2=>-1).map( -> ($a, $b) { $a - $b }) que funciona como esperado. Contudo, .say for (1,2,2).pairs.rotor(2=>-1).map( -> ($a, $b) { $a.value - $b.value }) joga Too few positionals passed to '<anon>'; expected 2 arguments but got 0 in...

8
Como iterar através de uma matriz dentro de um hash Raku?

Parece uma pergunta simples, mas Perl6 / Raku não está se comportando como eu esperava. Estou tentando criar uma referência a uma matriz dentro de um hash, mas não estou obtendo o comportamento esperado. No Perl5, a resposta envolveria o acesso à matriz por referência, mas não vejo sintaxe...

8
Sobrecarga do operador Raku

Usando o seguinte código: use v6d; # sub circumfix:<α ω>( @a ) { # @a[0] >= @a[1] & @a[0] <= @a[2]; # }; sub circumfix:<α ω>( $a, $b, $c ) { $a >= $b & $a <= $c; }; if (α <5 0 10> ω) { say 'Truthy'; } else { say 'Falsey'; } Resulta em: (base)...

8
Clonando matrizes multidimensionais

Eu quero clonar uma matriz multidimensional @a em uma matriz @b. Eu procedi da maneira mais intuitiva e criei o seguinte: my @a = [0, 0, 0], [0, 0, 0], [0, 0, 0]; my @b = @a.clone; @a[0][1] = 1; @b[1][0] = 1; say '@a : ' ~ @a.gist; say '@b : ' ~ @b.gist; e a impressão é: @a : [[0 1...

8
Impossível colocar um mapa no contexto do coletor

Estou tentando ver a maneira de jogar um mapa no contexto do coletor. Neste código class Sunk { has $.titanic; method sink { say "Sinking $!titanic"; } } Sunk.new( :titanic($_) ) for 1..3; (1..3).map: { Sunk.new( :titanic($_) ) }; O forloop efetivamente afunda todo o criado, o mapnão....

8
Assinaturas incompreensão inteligente

Ao ler e tentar assinatura de correspondência inteligente, encontro algo estranho. Executando os seguintes pares de assinaturas de smartmaching: my @sigs = :($a, $b), :($a, @b), :($a, %b); my @signatures_to_check = :($, $), :($, @), :($, %); my $c = 0; for @sigs -> $sig { for...

8
Substituição de string com .subst em um loop for

Eu gostaria de fazer uma substituição de string em um forbloco usando uma captura nomeada. Eu esperava obter os números 1,2,3 como saída. Mas é Nilpara a primeira execução e, em seguida, 1 e 2 para a 2ª e a 3ª execução. Como uso .substcorretamente a construção do loop? Eu vejo o mesmo comportamento...

8
Dividir string em determinadas posições

Como faço para dividir uma sequência de caracteres bem / idioma em uma lista de posições? O que eu tenho: .say for split-at( "0019ABX26002", (3, 4, 8) ); sub split-at( $s, @positions ) { my $done = 0; gather { for @positions -> $p { take $s.substr($done, $p - $done ); $done = $p;...

8
Como criar uma captura dinamicamente (Raku)

No exemplo a seguir, tento criar um Capture dinamicamente "convertendo" uma matriz (@a) em um Capture. Considere o código: sub f (|c){ say ''; say ' List : ' ~ do {c.list.gist if c.list.elems > 0}; say ' Hash : ' ~ do {c.hash.gist if c.hash.elems > 0}; say ''; } my $c1 = \(1,(2,3),4,5,...