perl6.suОсвоим perl6 к 2015 году!

nota LXI. Тильда с листом


       Мы уже использовали тильду в целях конкатенации.
    
#!/usr/bin/perl6
my $abc='кон' ~ 'ка' ~ 'тенация';
$abc.say;
конкатенация

       Оказывается, тильду можно применять и на массивах и списках.
    
#!/usr/bin/perl6
say <ко нка тена ция>;
say ~<ко нка тена ция>;
my @mass=<ко нка тена ция>;
say @mass;
say ~@mass;
ко нка тена ция
ко нка тена ция
ко нка тена ция
ко нка тена ция

       То есть тильда-лист возвращает один скаляр, склеивая элементы массива через пробел?
    
#!/usr/bin/perl6
my @mass=<ко нка тена ция>;
@mass=@mass.sort;
# my $out=~@mass; # так нельзя.  =~  приводит к ошибке "вы не в perl 5"
my $out=(~@mass);
$out.say;
ко нка тена ция

       Sic.
       Очевидно, можно склеивать таким образом скаляры и листы.
    
#!/usr/bin/perl6
my @mass=<ко нка тена ция>;
my $text='наш путь - ' ~ @mass;
$text.say;
наш путь - ко нка тена ция

       Si sic?
    
#!/usr/bin/perl6
my @mass=<ко нка тена ция>;
~@mass.say;
(~@mass).say;
ко нка тена ция
ко нка тена ция

       Неопознанное явление. Видимо, в первом случае это равносильно ~(@mass.say).
       N.B. Тильда нередко требует скобок.
# mutatio postrema: 16 Sep 2010

   ~      charta situs       nota LX <<     >> nota LXII   

    RSS     stdin@perl6.su    © Alexius Karmanov, 2010-2011