Knapsack problem/Continuous: Difference between revisions

Content added Content deleted
No edit summary
(Updated D entry)
Line 525: Line 525:
}
}


string toString() const /*pure /*nothrow*/ {
string toString() const pure /*nothrow*/ @safe {
return format("%10s %7.2f %7.2f %7.2f",
return format("%10s %7.2f %7.2f %7.2f",
name, amount, value, valuePerKG);
name, amount, value, valuePerKG);
Line 531: Line 531:
}
}


real sumBy(string field)(in Item[] items)
real sumBy(string field)(in Item[] items) @safe pure nothrow @nogc {
@safe pure nothrow @nogc {
//return reduce!(ctEval!("a + b." ~ field))(0.0L, items);
return reduce!("a + b." ~ field)(0.0L, items);
return reduce!("a + b." ~ field)(0.0L, items);
}
}


void main() {
void main() /*@safe*/ {
const items = [Item("beef", 3.8, 36.0),
const items = [Item("beef", 3.8, 36.0),
Item("pork", 5.4, 43.0),
Item("pork", 5.4, 43.0),