是否有从二维数组中提取对角线的下标语法?

Is there subscript syntax to extract a diagonal from a 2D Array?

我基本上可以按照 syntax 到 'drill down/slice' 进入文档页面上的多维(和展平)数组。一个非常酷的功能。例如给定:

my @a=[[1,2,3],
       [4,5,6],
       [7,8,9]];

我可以select上面的第2列使用:

say @a[0,1,2;1]; #This output (2,5,8)

是否可以用类似的紧凑语法提取对角线(1,5,9)?

say @a[ 0,1,2 ; { $++ } ] ; # (1 5 9)

所以我没有使用 1,它的计算结果为 1,而是 { $++ },它是 Block

当 Raku 遇到一个可调用代码对象作为下标值时,它会为它正在评估的每个切片调用一次,在本例中为第 0、第 12第 2 行。

$ 是一个匿名标量状态变量。