gpt4 book ai didi

arrays - 如何链接到 Perl 6 中的内联 block ?

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

我想修改一个数组(我在这个例子中使用 splice,但它可以是修改数组的任何操作)并返回修改后的数组 - 不像 slice ,它返回从数组中拉出的项目。我可以通过在数组中存储一个块来轻松完成,如下所示:

my $l = -> $a { splice($a,1,3,[1,2,3]); $a };
say (^6).map( { $_ < 4 ?? 0 !! $_ } ).Array;
# [0 0 0 0 4 5]
say (^6).map( { $_ < 4 ?? 0 !! $_ } ).Array.$l;
# [0 1 2 3 4 5]

如何内联由 $l 表示的块成一个单一的表达?明显的替换不起作用:
say (^6).map( { $_ < 4 ?? 0 !! $_ } ).Array.(-> $a { splice($a,1,3,[1,2,3]); $a })
Invocant requires a type object of type Array, but an object instance was passed. Did you forget a 'multi'?

有什么建议?

最佳答案

加一个 &在正确的位置。

say (^6).map( { $_ < 4 ?? 0 !! $_ } ).Array.&(-> $a { splice($a,1,3,[1,2,3]); $a })
# OUTPUT«[0 1 2 3 4 5]␤»

关于arrays - 如何链接到 Perl 6 中的内联 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979519/

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