gpt4 book ai didi

raku - 在 Perl 6 中用另一个数组的元素过滤一个数组的元素

转载 作者:行者123 更新时间:2023-12-04 14:39:18 25 4
gpt4 key购买 nike

我想过滤 @array 的元素以 @search 的元素开头:

my @array = "aaaaa" .. "fffff";
my @search = "aaaa" .. "cccc";
.put for @array .grep: /^ @search /;

问题是它需要 19 秒。所以,我 'precompile' regexgrep ,整个程序是这样的:

my @array = "aaaaa" .. "fffff";
my @search = "aaaa" .. "cccc";

my $search = "/@search.join('|')/".EVAL;

.put for @array .grep: * ~~ /^ <$search> /;

现在需要 0.444 秒。

问题:是否有内置的 Perl 6 方法来做这样的事情?类似于插入 junctionregex ...

最佳答案

my @array = "aaaaa" .. "fffff";
my @search = "aaaa" .. "cccc";
my $join = @search.join('|');
my $rx = rx{ ^ <{$join}> };

@array.grep( * ~~ $rx ).map( *.put )

您需要单独创建连接字符串,它将评估每个匹配项的数组连接。但是基本上不用EVAL就可以给你你想要的东西。

关于raku - 在 Perl 6 中用另一个数组的元素过滤一个数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46933838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com