Remover alguns caracteres de uma cadeia por índice (Raku)

Tinmarino:

FAQ: Em Raku, como você remover alguns caracteres de uma cadeia, com base no seu índice?

Digamos que eu queira remover índices de 1 a 3 e 8

xxx("0123456789", (1..3, 8).flat);  # 045679
Sebastian:

Variante de resposta Shnipersons:

my $a='0123456789';
with $a {$_=.comb[(^* ∖ (1..3, 8).flat).keys.sort].join};
say $a;

Em uma linha:

say '0123456789'.comb[(^* ∖ (1..3, 8).flat).keys.sort].join;

ou chamado por uma função:

sub remove($str, $a) {
    $str.comb[(^* ∖ $a.flat).keys.sort].join;
}

say '0123456789'.&remove: (1..3, 8);

ou com o aumento da Str:

use MONKEY-TYPING;
augment class Str {
    method remove($a) {
        $.comb[(^* ∖ $a.flat).keys.sort].join;
    }
};

say '0123456789'.remove: (1..3, 8);

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=376964&siteId=1
Recomendado
Clasificación