gpt4 book ai didi

raku - 为什么 **2 和 ² 在使用交叉元运算符时表现不同?

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

柯里化(Currying)下的结果是一样的,

say map * **2 , 1, 3, 5, 7, 9;
(1 9 25 49 81)
say map *² , 1, 3, 5, 7, 9;
(1 9 25 49 81)

另一方面,通过跨元操作符的行为是不同的,
say 1, 3, 5, 7, 9 X**2;
(1 9 25 49 81)
say 1, 3, 5, 7, 9 X²;
((1 2) (3 2) (5 2) (7 2) (9 2))

为什么 **2 和 ² 在使用交叉元运算符时表现不同?

最佳答案

X metaoperator 使用您给它的运算符将它们给定的两个列表结合起来。如果你不给它一个操作符,它会使用 ,作为默认值。

所以在这种情况下:

say 1, 3, 5, 7, 9 X²
X metaoperator 正在寻找中缀运算符。 ²不是中缀运算符它是后缀。

所以 X申请 ,作为运营商。但是现在 ²被评估为一个列表,在这种情况下,它是“this the number 2”属性。

基本上这些是相同的:
say 1, 3, 5, 7, 9 X²
say 1, 3, 5, 7, 9 X, 2

如果你想对列表中的所有项目求平方,你想使用 map运算符(operator)。就像你一开始做的那样。

关于raku - 为什么 **2 和 ² 在使用交叉元运算符时表现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58975097/

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