// A functional object that adds, once invoked
interface BinOp<P>
{
P execute(P p1, P p2);
}
// an interface for a collection of binary operation on
// collections
interface Functional<Collection<P>,B extends BinOp<P>>
{
P compute(Collection<P> p);
}
class Accumulate<C,P> implements Functional<C,P>
{
P curSum;
P element;
B binaryOperation;
public P compute(Collection<P> c)
{
for (int i = 0; i < c.size(); i++)
{
element = c.getIndex(i);
curSum = binaryOperation.execute(curSum,p);
}
return curSum;
}
}
Da kam er dann doch glatt ins schwitzen ;). Er versuchte die situation noch zu retten, schrieb im code noch etwas rum, aber s wurde nur noch schlimmer (am anfang war der code glaube ich richtig ;D).
Allerdings bin ich mir auch nich ganz sicher...werden C und P nur für das implement verwendet und im body von accumulate dann die parameternamen von functional?
laut diesem code wärs so (dann wären C die collection<P> und P das B) in accumulate<C,P>
und im body wär B dann die binäre operation und P der elementtyp in der Collection...doll, warum einfach (functionpointer), wenns auch kompliziert geht ;)
aber ok, eins muss ich diesem konstrukt zugestehen...funktionpointer auf unspezialisierte templates in C++ sind am ende warscheinlich auch bloß so ähnlich machbar. bei gelegenheit gugg ich mir das mal in C++ an...
1 Kommentar:
MTVawards 2010
Liebe Freunde
Wir stimmen wieder absolut nicht überein mit der diesjährigen mtv awards Entscheidung.
Bitte besucht unsere kleine Abstimmung
http://micropoll.com/t/KEcJnZBNrh
Lady Gaga kann doch wirklich nicht besser sein als Madonna
Diese Umfrage wird unterstützt von MTVawards 2010 sponsor femmestyle
[url=http://www.femmestyle.de]brustvergrößerung plastische Chirurgie[/url]
Nächstes mal muss wieder unbedingt um einiges besser werden.
Kommentar veröffentlichen