[Vienna-pm] Für L2R-Fetischisten & SQL-Gepeinigte

Josef Schmid e9427749 at stud4.tuwien.ac.at
Wed May 7 06:30:34 PDT 2008


Josef Schmid schrieb:
> Roland Giersig schrieb:
>> Robert Barta wrote:
> [...]
>>> ... die Syntax erweiteren. Ich verwende map/grep exzessiv, aber das
>>> verkehrt von hinten nach vorn lesen/schreiben ueberless ich lieber den
>>> Chinesen.
> [...]
> Oder alternativ:
> use English::Reference qw(deref);
> sub _asiaphop
> { my $last=pop; my $peek=$_[$#_];
>    ref $peek eq'CODE'?$last->(_asiaphop(@_)):$last->(deref $peek);
> }
> sub asiaphop (\[@$%];&&&&&&&&&&&&&&&&&&&&&&&&&&&&&) {_asiaphop(@_)}
> 
> # test: -> (b)(c)(d)(e)
> my @a=qw(a b c d e);
> print asiaphop @a,sub{ grep{$_ ne 'a'}@_ },sub{ map{"($_)"}@_ };
> 
> obwohl ¬ so hübsch,
>    Jo "von Affen gebissen" sef

Es ginge allerdings etwas hübscher, ala:
   from @students,
     where { $_->matnr ne 'u007' } select { $_->name };

Ansonsten hätte ich so ein paar Ideen für die weniger
xenophoben unter den pm'lers:

Nämlich mittels Überladungen von grep, map und
join <bg /> eine Übersetzung nach SQL-Statements
zu erzeugen.
Also my @r=map { [$_->s->name,$_->c->name] }
            grep { $_->s->matnr eq '...' }
            join '=',               # equal join ;-)
            from s => @students, c => @courses;

Was haltet ihr von der Idee?
(Sieht nach O(n²) aus schafft aber was immer die
  DB hergibt.)

pfiateng,
   Josef



More information about the Vienna-pm mailing list