[bcn-pm] Jugant amb Perl6
mimosinnet
mimosinnet a gmail.com
dim maig 17 05:11:02 PDT 2016
El Monday, 16 de May del 2016 a les 17:42, jluis a escomposlinux.org va escriure:
>El Dilluns, 16 de maig de 2016, a les 17:33:13, mimosinnet va escriure:
>> moltes variacions en l'escriptura de la 'signatura'), pel que pot ser
>> difícil la lectura. Per exemple, encara no entenc la diferència entre
>> "is copy" i "is rw"
>
>A Perl6 els paràmetres de les signatures son per defecte referencies i no
>modificables declarant un paràmetre con is copy ho fa modificable dintre de la
>funció per que es una copia i el seu valor no variara al programa. si el
>declaràs com rw si la modifiques al la funció variara el valor al que la crida
Moltes gràcies! Em sembla que ho he captat ;-) :D
Força subtil!:
---- Cas 1
#!/usr/bin/env perl6
use v6;
sub MAIN($pattern is rw) {
$pattern = "adeu";
say $pattern;
}
% perl6 test.pl6 hola
Usage:
test.pl6 <pattern>
---- Cas 2
#!/usr/bin/env perl6
use v6;
sub MAIN($pattern is copy) {
$pattern = "adeu";
say $pattern;
}
% perl6 test.pl6 hola
adeu
---- Cas 3
#!/usr/bin/env perl6
use v6;
sub swap($hola is rw, $adeu is rw) {
($hola, $adeu) = ($adeu, $hola);
say "$hola $adeu";
}
swap("hola","adeu");
% perl6 test.pl6 hola adeu
Parameter '$hola' expected a writable container, but got Str value
in sub swap at test.pl6 line 3
in block <unit> at test.pl6 line 7
---- Cas 4
#!/usr/bin/env perl6
use v6;
sub swap($hola is rw, $adeu is rw) {
($hola, $adeu) = ($adeu, $hola);
say "$hola $adeu";
}
my $hola = "hola"; my $adeu = "adeu";
swap($hola,$adeu);
% perl6 test.pl6 hola adeu
adeu hola
----
--
(≧∇≦) Mimosinnet (Linux User: #463211)
(≧∇≦) Ningún Lugar
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
★ Activisme Cultural per a la Transformació Social
(≧∇≦) Fractalitats en Investigació Crítica
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
* Investigació Crítica per a la Transformació Social
* http://psicologiasocial.uab.es/fic
-------------- part següent --------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://mail.pm.org/pipermail/barcelona-pm/attachments/20160517/0d733125/attachment.bin>
Més informació sobre la llista de correu Barcelona-pm