| 
		
						
			
			
	
				 | 
			
		
		
			
		
  
		| 
 
 
	
	
 
 
   
        
        
             
        
        
        | 
	Hezké, hezké
         | 
             12.8.2005 16:11
			      
                             Hynek (Pichi) Vychodil
			      
         | 
	
         
            Jen nevím kdy se tímto tempem dostaneme k něčemu jako:
use strict;
use warnings;
sub setif (&$$) { my $sub = shift; local ($a,$b) = @_; $_[0] = $_[1] if &$sub; }
my ($d,$c) = (1,2);
setif { $a<$b } $d,$c;
print $d,$/;
 | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: Hezké, hezké
         | 
             12.8.2005 16:14
			      
                             Ivan Majer
			      
         | 
	
         
            No musim priznat, ze to jde ted pomaleji. Clanku o programovani se vydava ted podstatne mene, max. jeden az dva tydne.... 
 
Neni to ale v zadnem pripade chyba autora, protoze ten ma dily v administraci pripravene.  | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: Hezké, hezké
         | 
             12.8.2005 18:01
			      
                             Hynek (Pichi) Vychodil
			      
         | 
	
         
            No já si dělám srandu. Tohle je hodně daleko. To je spíš pro takové hračičky. Jako například takovej operátor merge. To mě přímo štve, že perlu chybí. To si ho člověk musí doprogramovat:
 use strict;
use warnings;
sub merge (&\\@\\@) {
  my ($sub,$f,$s) = @_;
  my $i = 0;
  no warnings 'uninitialized';
  map { local (*a, *b) = (\\$_, \\$s->[$i++]); &$sub } @$f;
}
my @a=(1,2,3);
my @b=(4,5,6);
print "Merge result: ", join(' ', merge {$a += $b} @a, @b), $/;
print "a: @a$/";Ale dost už ať čtenáře nevyděsím :-)
P.S.: Proč ten engine baští spětná lomítka? | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: Hezké, hezké
         | 
             12.8.2005 18:22
			      
                             Hynek (Pichi) Vychodil
			      
         | 
	
         
            To no warnings je tam zbytečně. Musí se použít až v místě volání merge. Je tam pro případ, že druhé pole je menší než první. Trošku se to chová jinak než jsem čekal. | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
        
             
        
        
        | 
	Re: Hezké, hezké
         | 
             12.8.2005 18:48
			      
                             Aleš Hakl
			      
         | 
	
         
            Zpetna lomitka opravena (funguje to tak jak to je mysleno, tj. ne zpetne kompatibilne).
 
Opravena verze vyse uvedene perlove necitelne magie:
 use strict;
use warnings;
sub merge (&\@\@) {
  my ($sub,$f,$s) = @_;
  my $i = 0;
  no warnings 'uninitialized';
  map { local (*a, *b) = (\$_, \$s->[$i++]); &$sub } @$f;
}
my @a=(1,2,3);
my @b=(4,5,6);
print "Merge result: ", join(' ', merge {$a += $b} @a, @b), $/;
print "a: @a$/"; | 
         
        
        | 
	
   
         | 
         
                   
         | 
         
         
	
   | 
  
 
 
   
  | 
 
 | 
	KOMENTARZE
 
         | 
  
 
   | 
     
    
   
    Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
   
  
   | 
  
 
 | 
	
	 
	Szukanie oprogramowania
					  
		
 
				 | 
			
			
				
					©Pavel Kysilka - 2003-2025 | 
					mail linuxsoft.cz | Design: 
					www.megadesign.cz
					
				 |