Warum beeinflussen + und ~ Perl 6 Junctions unterschiedlich?

8

Fügen Sie einen zu einer Junction von Ints hinzu:

%Vor%

Jetzt haben Sie eine Kreuzung dieser Intents um eins erhöht:

%Vor%

Also, 2 == any(2, 4, 8) ist wahr.

Machen Sie eine Verbindung von Zeichenfolgen und hängen Sie an diese Zeichenfolgen an:

%Vor%

Sie erhalten ein anderes Ergebnis, das nicht 'Hamadryas' oder 'Hamadryas' ist:

%Vor%

Ich habe etwas erwartet wie:

%Vor%

Was ist der Unterschied in diesen Operationen, der ihnen ein unterschiedliches Verhalten gibt, obwohl sie ähnlich sein sollten?

    
brian d foy 06.08.2017, 01:47
quelle

2 Antworten

4

Das Ergebnis mit ~ , das Sie beobachten, ist eine an die zweite Zeichenfolge angehängte Zeichenfolge.

Der Grund dafür ist, dass ~ einen schlampigen Kandidaten hat, der die Junction nur als arg akzeptiert, während + keinen solchen Kandidaten hat, und so junkt es:

%Vor%

Zumindest ist dies inkonsistentes Verhalten und sollte vereinheitlicht werden. Ich habe dafür ein @LARRY RT Ticket geöffnet: Ссылка

    
Zoffix Znet 07.08.2017 22:36
quelle
1

auf der High Sierra 10.13, schlägt fehl mit:

%Vor%

Dieser Typ kann nicht zu einer nativen Zeichenkette aufgelöst werden: P6opaque, Junction   im Block in Zeile 1

%Vor%

Dies ist die Rakudo Star Version 2017.10, die auf der MoarVM Version 2017.10 aufbaut Implementierung von Perl 6.c.

    
chenyf 08.12.2017 10:43
quelle

Tags und Links