[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