demonstrates how to use xtd::linq::enumerable::aggregate method.
#include <xtd/xtd>
auto main() -> int {
auto fruits = std::vector<std::string> {"apple", "mango", "orange", "passionfruit", "grape"};
auto longest_name =
from(fruits).aggregate("bananas",
[](auto&& longest, auto&& next) {return next.size() > longest.size() ? next : longest;},
[](auto&& fruit) {return string {fruit}.to_upper();});
console::write_line("The fruit with the longest name is {}", longest_name);
}