是否有Perl6规范形式?

use*_*673 4 grammar perl6 canonicalization

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
Run Code Online (Sandbox Code Playgroud)

请特别注意第一种形式的评论:"规范方式".

另一个例子是以下文档method make:

This is just a little sugar for $/.made = $ast which is a very common operation in actions.
Run Code Online (Sandbox Code Playgroud)

是否存在可以为Perl6程序输出的规范形式,以便在掌握了规范子语法后,可以检查该形式的任何Perl6程序以理解它?

Cur*_*mes 8

我会说Perl6语法(尤其是烤肉)正典,所以所有这些形式都是'规范'.该注释指的是在编译/执行任何其他表单时实际发生的情况.调用类的.new()方法Pair来创建新Pair对象.无论您使用哪种选项,都可以在幕后发生这种情况.其他语法只是表达相同内容的更简单方法.

您可能会发现该.perl()方法很有用.它将描述在Perl中表达任何变量的方式:

> Pair.new('key', 'value').perl
:key("value")
> ('key' => 'value').perl
:key("value")
> (:key<value>).perl
:key("value")
Run Code Online (Sandbox Code Playgroud)