gpt4 book ai didi

raku - .trans 在 Perl 6 中的键长于一个符号

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

trans 是一个非常有用和强大的工具,但它仍然是 a bit of a mystery为了我。

例如。我仍然不明白文档中的这句话:

In case a list of keys and values is used, substrings can be replaced as well.



如果键和值都长于一个符号,那么算法是什么?

以下测试代码探讨了 .trans使用“冲突”键。为什么第一对的工作方式因它是单独的还是由第二对伴随而不同?

my Pair @trans =
ab => '12',
bc => '34',
;
my $str = 'ab';
say "both trans: $str.trans(@trans)"; # 13
say "1st trans: $str.trans(@trans[0])"; # 12

使用散列而不是对列表会产生不同的结果:

my %trans =
ab => '12',
bc => '34',
;
my $str = 'ab';
say "both trans: $str.trans(%trans)"; # 12

(我知道在 hash 中,对可以按任何顺序排列,但在第一个带有 list 的示例中,它是第一对,如果存在第二对,则不会完全使用)

最佳答案

(我不是 100% 确定以下内容,但我必须运行。).trans需要一个或多个共同描述所需翻译的对参数。
键是单个字符串的一对的翻译
P6 将配对键字符串的第 N 个字符映射到配对值字符串的第 N 个字符。
因此.trans: "ab" => "12" map "a""1""b""2" .
键是字符串列表的一对的翻译
P6 将配对键列表的第 N 个字符串映射到配对值列表的第 N 个字符串。
因此.trans: ("ab", "bc") => ("12", "13") map "ab""12""bc""13" .
对列表的翻​​译
一对的翻译以上述两种形式中的一种或另一种形式进行,这取决于键是包含一个字符串还是包含它们的列表。
对列表的翻​​译只是对每对重复该过程,根据该对的键执行第 N 个字符或第 N 个字符串映射。

how .trans works with 'conflicting' keys


给定一组对,P6 首先尝试第一个,如果不匹配,则尝试第二对,依此类推。

我需要探究 lizmat 现在的想法以及她在 her earlier answer about .trans 中说以下内容时的意思。 :

I think you misunderstand what .trans does. You specify a range of characters to be changed into other characters. You are NOT specifying a string to be changed to another string.



我认为您从文档中引用的句子有点模棱两可:

In case a list of keys and values is used, substrings can be replaced as well.


这意味着(单) .key传递给 .trans 的一对属性存储字符串列表而不是单个字符串,同样用于该对的单个 .value属性。

关于raku - .trans 在 Perl 6 中的键长于一个符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47174059/

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