JavaScript 箭头函数的 raku 等价物是什么?

p6s*_*eve 10 javascript functional-programming raku

在 JavaScript 中,我可以去

const materials = [
  'Hydrogen',
  'Helium',
  'Lithium',
  'Beryllium'
];

console.log(materials.map(material => material.length));
// expected output: Array [8, 6, 7, 9]
Run Code Online (Sandbox Code Playgroud)

我猜 raku 在功能上有一些印记 - 我想知道是否有人可以澄清等效代码(请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

hob*_*bbs 18

最直接的等价物是

my @materials = <Hydrogen Helium Lithium Beryllium>;
say @materials.map(-> $material { $material.chars });
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,箭头子比您需要的更明确,因为

say @materials.map: *.chars;
Run Code Online (Sandbox Code Playgroud)

也足够了(对“任何明星”的方法调用返回一个代码块,该代码块在其参数上调用该方法),并且

say @materials».chars;
Run Code Online (Sandbox Code Playgroud)

也可以工作(应用于点运算符的超级应用程序)。