2017-08-06 47 views
8

Ints bir kavşağa birini ekleyin:+ ve ~ Perl 6 bağlantılarını neden farklı etkiler?

any(2, 4, 8) 

Yani, 2 == any(2, 4, 8) doğrudur:

put any(1, 3, 7) + 1; 

Şimdi bir birim artar bu Ints bir kavşak var.

bu dizelerine dizeleri bir kavşak yapıp ekleyin:

any("h", "H")amadryas 

şey beklenen:

put any(<h H>) ~ 'amadryas'; 

Sen 'hamadrya' veya 'Hamadryas' eşit değil farklı bir sonuç almak gibi:

any('hamadryas', 'Hamadryas'); 

Bu davranışlarda farklı davranışlar veren farklar nelerdir? r benzer olsalar bile mi?

+0

İlk tahmin, 'infix:« ~ »' nin bir ': (* @ args -> Str: D)' adayına sahipken, & infix: «+» 'dır. –

cevap

4

Gözlemlediğiniz ~ sonucu, ikinci dizeye eklenmiş bir dize birleşimidir. + böyle bir aday yok iken

nedeni, sadece bir arg Kavşağı alan bir Slurpy adayı sahiptir ~ olduğunu ve bu nedenle juncts: En azından

<Zoffix__> m: sub foo (*@a) { @a.join: '|' }; say foo <h H>.any, 'amadryas' 
<camelia> rakudo-moar a91ad2: OUTPUT: «any("h", "H")|amadryas␤» 
<Zoffix__> m: sub foo ($a, $b) { ($a, $b).join: '|' }; say foo <h H>.any, 'amadryas' 
<camelia> rakudo-moar a91ad2: OUTPUT: «any(h|amadryas, H|amadryas)␤» 

, Bu tutarsız davranış ve birleşik olmalıdır. koymak, High Sierra 10.13 tarihinde https://rt.perl.org/Ticket/Display.html?id=131856

1

başarısız:: Bunun için bir @LARRY RT bilet açıldı

put any(1, 3, 7) + 1 

Bu tür can yerli dizeye Unbox değil: P6opaque, Junction blokta hattı 1

de
perl6 -v 

Bu, MoarVM sürüm 2017.10 Perl 6.c.'nin üzerine kurulu olan Rakudo Star sürüm 2017.10'dur.

+0

Onaylandı ve rapor edildi: https://rt.perl.org/Ticket/Display.html?id=132549 –

İlgili konular