Preguntas etiquetadas con raku

8
Números racionales en Raku

Estoy usando Raku para algunos cálculos, porque tiene buenos tipos numéricos. Sin embargo, tengo un problema con el uso de '.raku' say (1/6+1/6).raku #<1/3> Obtenemos esto. Sin embargo, say (1/10+1/10).raku #0.2 ¿Es un error? Esperaba <1/5>. ¿Lo que

8
Restricción de firma en roles en raku

Tal vez me falta algo, pero me gustaría saber si hay una buena razón por la cual este código debe compilarse 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 = A.new; say...

8
Desestructurar una lista de pares

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

8
Sobrecarga del operador Raku

Usando el siguiente 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'; } Resultados en: (base)...

8
Clonación de matrices multidimensionales

Quiero clonar una matriz multidimensional @aen una matriz @b. He procedido de la manera más intuitiva y se me ocurrió lo siguiente: 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; y la impresión es:...

8
Imposible poner un mapa en contexto de hundimiento

Estoy tratando de ver la forma de lanzar un mapa en contexto de sumidero. En este código class Sunk { has $.titanic; method sink { say "Sinking $!titanic"; } } Sunk.new( :titanic($_) ) for 1..3; (1..3).map: { Sunk.new( :titanic($_) ) }; los for bucle efectivamente hunde todo lo creado, el...

8
Firmas malentendidos malentendidos

Mientras leo e intento el emparejamiento inteligente de firmas, me encuentro con algo extraño. Ejecutando los siguientes pares de firmas de smartmaching: my @sigs = :($a, $b), :($a, @b), :($a, %b); my @signatures_to_check = :($, $), :($, @), :($, %); my $c = 0; for @sigs -> $sig { for...

8
Reemplazo de cadena con .subst en un bucle for

Me gustaría hacer una sustitución de cadena en un forbloque usando una captura con nombre. Esperaba obtener los números 1,2,3 como salida. Pero es Nilpara la primera carrera, y luego 1 y 2 para la segunda y tercera carrera. ¿Cómo uso .substcorrectamente en la construcción de bucle? Veo el mismo...

8
División de cadena en las posiciones dadas

¿Cómo divido agradable / idiomáticamente una cadena en una lista de posiciones? Lo que tengo: .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; } take...

8
Cómo crear una captura dinámicamente (Raku)

En el siguiente ejemplo, trato de crear una captura dinámicamente "convirtiendo" una matriz (@a) en una captura. Considera el 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 =...