Schrift
[thread]1997[/thread]

Kleinster Perl-Taschenrechner-Algorithmus: wer baut ihn?



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
pktm
 2006-05-31 19:38
#22559 #22559
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Also im Zuge des Perlkurses hier wurden schon mehrere Taschenrechner gebaut. Es fing bei langen öden if-else-Blöcken an und ist mittlerweile hier angekommen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my $zahl1 = 7;
my $zahl2 = 3;
my $operator = '*';
my %switch = (
'*' => sub{ return $zahl1 * $zahl2; },
'/' => sub{ return $zahl1 / $zahl2; },
'+' => sub{ return $zahl1 + $zahl2; },
'-' => sub{ return $zahl1 - $zahl2; },
);

my $ergebnis = $switch{$operator}->();


Wer kann den noch kleiner machen?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
GwenDragon
 2006-05-31 19:50
#22560 #22560
User since
2005-01-17
14784 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my $zahl1 = 7;
my $zahl2 = 3;
my $operator = '*';
my %switch = (
'*' => sub{ $zahl1 * $zahl2; },
'/' => sub{ $zahl1 / $zahl2; },
'+' => sub{ $zahl1 + $zahl2; },
'-' => sub{ $zahl1 - $zahl2; },
);

my $ergebnis = $switch{$operator}->();
renee
 2006-05-31 19:52
#22561 #22561
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ganz Böse:

Code: (dl )
1
2
3
4
5
6
my $zahl1 = 7;
my $zahl2 = 3;
my $operator = '*';

my $ergebnis;
eval("\$ergebnis = $zahl1 $operator $zahl2");


edit: So etwas sollte NIE in einen produktiven Code einfließen. Das war nur hier um die Kürze hervorzuheben...\n\n

<!--EDIT|renee|1149090839-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-05-31 19:53
#22562 #22562
User since
2005-01-17
14784 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my $zahl1 = 7;
my $zahl2 = 3;
my $operator = '*';
my %switch = (
'*', sub{ $zahl1 * $zahl2; },
'/', sub{ $zahl1 / $zahl2; },
'+', sub{ $zahl1 + $zahl2; },
'-', sub{ $zahl1 - $zahl2; },
);

my $ergebnis = $switch{$operator}->();
GwenDragon
 2006-05-31 19:57
#22563 #22563
User since
2005-01-17
14784 Artikel
Admin1
[Homepage]
user image
[quote=renee,31.05.2006, 17:52]Ganz Böse:

Code: (dl )
1
2
3
4
5
6
my $zahl1 = 7;
my $zahl2 = 3;
my $operator = '*';

my $ergebnis;
eval("\$ergebnis = $zahl1 $operator $zahl2");


edit: So etwas sollte NIE in einen produktiven Code einfließen. Das war nur hier um die Kürze hervorzuheben...[/quote]
Zu lang!
Code: (dl )
my$zahl1=7;my$zahl2=3;my$operator='*';my $ergebnis;eval("\$ergebnis=$zahl1$operator$zahl2");


Ich nehme mal eher an, dass "kurz" als "lesbar und schreibfaul und Gutes Beispile für Anfanger" gemeint war ;)\n\n

<!--EDIT|GwenDragon|1149091126-->
renee
 2006-05-31 19:58
#22564 #22564
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
C:\Dokumente und Einstellungen\Renee>perl -e "eval('print '.join(' ',@ARGV));" 7 * 3


*g*
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-05-31 19:59
#22565 #22565
User since
2005-01-17
14784 Artikel
Admin1
[Homepage]
user image
renee
 2006-05-31 20:00
#22566 #22566
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
perl -e "print eval(join('',@ARGV));" 7 * 3
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2006-05-31 20:01
#22567 #22567
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@GwenDragon: Ein bißchen Spaß muss sein, dann ist die Welt voll Sonnenschein... :D
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-05-31 20:10
#22568 #22568
User since
2005-01-17
14784 Artikel
Admin1
[Homepage]
user image
Ja, es war ja nur die Frage nach kurz. Also Quick() & Dirty();

ptkms Schülerinnen und Schüler würden die Haare zu Berge stehen, bei solchen "kurzen" Konstrukten :)\n\n

<!--EDIT|GwenDragon|1149092078-->
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2006-05-31 19:38.