2017-05-27 2 views
4

Perl6標準の文法は比較的大きいです。一度マスターすると表現が容易になりますが、それは習得の障壁となります。例えば、コア構築物は、しばしば、異なるプログラミングパラダイムをサポートする複数の形態を有する。基本的な例では、Pairsを作成するための構文の品種である:Perl6標準形式はありますか?

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のプログラムのための1つの月の出力は、正規のサブ文法を習得した、一つにそのフォームで任意Perl6のプログラムを検査することができるようにすることを正規の形式がありますそれを理解する?

+0

'make'は実際には砂糖ではなく、通常の方法とサブルーチンです。 –

答えて

7

私はPerl6の文法(特にroastはので、すべてのこれらのフォームは、「標準的な」の一種であり、キヤノンであることを言うと思います。そのコメントは、他のフォームのいずれかがコンパイル/実行されたときに実際に何が起こっているかを示します。 Pairクラスの.new()メソッドが呼び出され、新しいPairオブジェクトが作成されます。それはあなたが使用しているオプションのどれに関係なく、言い換えれば舞台裏で起こります。他の構文は同じことを表現する簡単な方法です。

.perl()メソッドが役立つ場合があります。どの変数がPerlで表現されるかを記述します:

> Pair.new('key', 'value').perl 
:key("value") 
> ('key' => 'value').perl 
:key("value") 
> (:key<value>).perl 
:key("value") 
関連する問題