Perl6标准语法比较庞大。虽然这有助于一旦掌握后的表达,但却为掌握造成了障碍。例如,核心构造通常具有支持不同编程范例的多种形式。一个基本的例子是创建 Pairs 的各种语法。 :
Pair.new('key', 'value'); # The canonical way
'key' => 'value'; # this...
:key<value>; # ...means the same as this
:key<value1 value2>; # But this is key => <value1 value2>
:foo(127); # short for foo => 127
:127foo; # the same foo => 127
特别注意对第一种形式的注释:“规范方式”。
另一个例子是the documentation for method make
:
This is just a little sugar for $/.made = $ast which is a very common operation in actions.
是否存在一种可以为 Perl6 程序输出的规范形式,以便在掌握规范子语法后,可以检查该形式的任何 Perl6 程序以理解它?
最佳答案
我想说 Perl6 语法(特别是 roast )是规范,所以所有这些形式都是“规范”的。该注释指的是编译/执行任何其他形式时实际发生的情况。调用 Pair
类的 .new()
方法来创建新的 Pair
对象。可以这么说,无论您使用哪个选项,这种情况都会在幕后发生。其他语法只是表达相同事物的更简单的方法。
您可能会发现 .perl()
方法很有帮助。它将描述在 Perl 中表达任何变量的方式:
> Pair.new('key', 'value').perl
:key("value")
> ('key' => 'value').perl
:key("value")
> (:key<value>).perl
:key("value")
关于grammar - 有 Perl6 规范形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44219209/