Perl6 是否有一种规范格式?

4
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

请注意,特别是对第一个表单的注释:“规范的方法”。
另一个例子是{{link1:method make的文档}}:
This is just a little sugar for $/.made = $ast which is a very common operation in actions.

有没有一种规范形式可以输出Perl6程序,以便掌握了规范的子语法后,可以检查任何以该形式呈现的Perl6程序并理解它?

make并不是真正的“糖”,它只是一个普通的方法和子程序。 - Brad Gilbert
1个回答

8
我认为Perl6语法(特别是roast标准,所以所有这些形式都是“规范的”。该评论指的是在编译/执行任何其他形式时实际发生的情况。 Pair类的.new()方法被调用以创建新的Pair对象。无论您使用哪种选项,这在幕后发生,可以说,其他语法只是表达相同事物的更简单的方式。
您可能会发现.perl()方法很有帮助。它将描述任何变量在Perl中的表达方式:
> Pair.new('key', 'value').perl
:key("value")
> ('key' => 'value').perl
:key("value")
> (:key<value>).perl
:key("value")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接