[Vienna-pm] Hausbackene Syntaxerweiterung mit Perl5?

Robert Barta rho at devc.at
Tue Apr 29 20:50:04 PDT 2008


On Tue, Apr 29, 2008 at 10:27:13PM +0200, Thomas Klausner wrote:
> Hi!
> 
> On Tue, Apr 29, 2008 at 07:11:04PM +0200, Robert Barta wrote:
> > Kurze Frage: Wenn ich in meinen Perl Programmen so etwas
> > gerne hinschreiben wuerde
> >   my @students = ....;
> >   my @cleverlies = from $s in @students
> >                    where $s->{marks} > 85
> >                    select $s->{matrikelnr};
> > 
> 
> Soll das auf eine DB zugreifen? Oder willst du "nur" einen Array of 
> Hashrefs durchwuehlen?
> 
> wenn letzteres:
> 
> my @cleverlies = map { $_->{matrikelnr} } 
>                  grep { $_->{marks} > 85 }
> 		 @students;

Der Clue an dem LINQ ist, dass man mit dem selben Zugriffsmechanismus
auf in-memory Objekte, relational DBs, XML structures, und - das
interessiert mich hier hauptsaechlich - auf Topic Map und RDF KBs
zugreifen kann. LINQ ist nun Teil von C# (das langsam Perl6 immer
aehnlicher wird, naja langsam).

    http://msdn.microsoft.com/en-us/vbasic/aa904594.aspx

Ich moecht' hauptsaechlich einmal einen proof-of-concept mit TMs
bauen. Die Syntaxerweiterung ist eigentlich eh Augenauswischerei,
weil ein

   @some_collection = from $v in @other_collection
                      where ...
                      select ....

intern auf lauter Methoden mit lambda expressions umgebogen wird:

                      @other_collection.where (...)
                                       .select ()

\rho




More information about the Vienna-pm mailing list