10

この SO には raku タグを付けないでください。あまりにも時代遅れ/誤解を招きます。質問本文で説明されている技術的な問題は適用されなくなりました。命名/タグに関するコメントの不一致は、もはや適用されません。古いタグの下にのみ、歴史的な関心のために残しています。


Perl 6 を学習していますが、以下の Perl 6 のワンライナーを理解するのに苦労しました

私のPerl 6はrakudo-star: stable 2014.04 (bottled)

これはうまくいきます。配列/リストはソートされています

[njia@mb-125:~] : perl6 -e 'say [2443,5,33, 90, -9, 2, 764].sort'
-9 2 5 33 90 764 2443

しかし、これは配列/リストをソートしません。[].sortなぜ@s.sortうまくいかないのですか?

[njia@mb-125:~] : perl6 -e 'my @s = [2443,5,33, 90, -9, 2, 764]; @s.sort.say'
2443 5 33 90 -9 2 764

[]からに変更()

[njia@mb-125:~] : perl6 -e 'my @s = (2443,5,33,90,-9,2,764); @s.sort.say'
-9 2 5 33 90 764 2443

この質問で説明されている動作は、perl6 のリリース バージョンで変更されていることに注意してください。以下のG. Citoの回答を参照してください。

4

2 に答える 2

5

ここでは、CPAN の Perl6 ドキュメントを参照して、これをリスト対配列(つまりシーケンスとアイテム化された値のシーケンス) として見ることができます(「参考文献」を参照doc.perl6.org)。

確かに、perl6 は独自のタグを保証するほど十分に異なっていますが、リストを作成して無名配列を作成することは驚くべきことではありません perl()[]

> say [2443, 5, 33, 90, -9, 2, 764].WHAT
(Array)
> say (2443, 5, 33, 90, -9, 2, 764).WHAT
(List)

この質問が最初に尋ねられて回答されて以来、動作が変更されました。

> my @s = [2443, 5, 33, 90, -9, 2, 764]
> @s.sort.say
(-9 2 5 33 90 764 2443)

ソート時の出力は a ですListが、それ以外の場合@sは次のようになることに注意してくださいArray

> @s.sort.WHAT.say
(List)
> @s.WHAT.say
(Array)
于 2014-06-20T13:30:53.370 に答える