如何在 raku-lang 中修改矩阵

黃家億*_*黃家億 5 raku

当我尝试在 raku 中修改矩阵时。我收到错误:

my @matrix = ^100 .rotor(10);
@matrix[1;*] = 1 xx 10
Cannot modify an immutable Int (10)
      in block <unit> at <unknown file> line 1
@matrix[1;1] = 3
Cannot modify an immutable List ((10 11 12 13 14 15 1...)
      in block <unit> at <unknown file> line 1
Run Code Online (Sandbox Code Playgroud)

为什么所有这些值都是不可变的值?

jjm*_*elo 5

好吧,列表总是不可变的。您可以修改他们的容器,但不能修改他们自己。rotor创建列表,所以一旦它们被创建,你就不能修改它们。不知道你到底想在这里做什么,但是看看这里的错误,我会说你需要把那些不可变的列表变成可变Array的:

my @matrix = ^100 .rotor(10).map: *.Array;
@matrix[1;*] = 1 xx 10;
@matrix[1;1] = 3;
Run Code Online (Sandbox Code Playgroud)