perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 27
Click for quality!




11.02.2012 / 13:25

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragLambda-Funktion (Anonyme Funktion)
Seitenanfang
Hi Leute,
ich komm hier irgendwie nicht weiter.
Kann mir jemand den Code erklären. Ich hab ihn mal mit Kommentaren versehen. Stimmen diese soweit?? Und die Kommentarzeile mit den ?? bräuchte ich bitte eine Antwort. Vielen Dank

sub create_iter { # Funktionen wird gebildet
my $i = 0;
my $inc = shift; # erstes Element entfernen... aber von was??
return sub { $i+=$inc; return $i}#Anonyme Funktion
}

my $iter = &create_iter(50);#die Referenz wird an $iter uebergeben
print "$iter\n"; # die Referenz wird ausgeben
print &$iter, ' ' for (1..20); # ??
print "\n";


Datum: 04.01.2005-09:57

Beitragre: Lambda-Funktion (Anonyme Funktion)
Seitenanfang
# Oh .. MaeuseMelkem angesagt ...
sub create_iter()
{ # Funktionen wird gebildet
my $i = 0;
my $inc = shift @_; # erstes Element aus Paramerliste entnehmen
return sub { $i+=$inc; return $i} #Anonyme Funktion
}

my $iter = &create_iter(50);#die Referenz wird an $iter uebergeben
# nun, hierdurch wird di 50 in >>sub{$i+=$inc; return $i}<<
# verwahrt, da >>sub{$i+=$inc; return $i}<< noch nicht
# durch den garbage collector ist.

print "$iter\n"; # die Referenz wird ausgeben

for my $sth (1..20)
{
print &$iter, ' ' ; # ?verstaendlicher?
#sollte 50, 100, 150, 200, ..... ergeben
}
print "\n";

#--------------------------------------------------------
ich habe diese Bescheidenheit nicht bei mir ausprobiert,
denn ich mag keine ..., aber es koennte wie erlaeutert
funktionieren.

Datum: 04.01.2005-23:31

-






-
-