## digitalmars.D - Programming chrestomathy: wealthiest customer

• mipri (34/34) Mar 08 This is a fun video: https://www.youtube.com/watch?v=MKb4WD6mioE
mipri <mipri minimaltype.com> writes:
```This is a fun video: https://www.youtube.com/watch?v=MKb4WD6mioE
Which includes three separate C++ solutions to a simple
(four letters in APL) problem, his preferred C++ solution
being:

// C++17 Solution
int maximumWealth(vector<vector<int>>& accounts) {
return std::transform_reduce(
accounts.cbegin(),
accounts.cend(),
0,
[](auto a, auto b) { return std::max(a, b); },
[](auto const& row) { return std::reduce(row.cbegin(),
row.cend()); });
}

Although what he thinks the C++ is trying to be is this Rust:

pub fn maximum_wealth(accounts: Vec<Vec<i32>>) -> i32 {
accounts.iter()
.map(|x| x.iter().sum())
.max()
.unwrap()
}

But D is very competitive here:

int maximumWealth(const int[][] accounts) {
import std.algorithm : map, sum, maxElement;
return accounts.map!sum.maxElement;
}

Or, aping the APL:

int maximumWealth(const int[][] accounts) {
import std.algorithm : fold, map;
return accounts.map!(fold!"a+b").fold!"a.max(b)";
}

That's it. I like this RosettaCode stuff and happened across
the video. He does include D in some other similar videos, like
```
Mar 08
FeepingCreature <feepingcreature gmail.com> writes:
```On Tuesday, 9 March 2021 at 05:06:03 UTC, mipri wrote:
But D is very competitive here:

int maximumWealth(const int[][] accounts) {
import std.algorithm : map, sum, maxElement;
return accounts.map!sum.maxElement;
}

Or, aping the APL:

int maximumWealth(const int[][] accounts) {
import std.algorithm : fold, map;
return accounts.map!(fold!"a+b").fold!"a.max(b)";
}

Golf!

import std;

alias maximumWealth = pipe!(map!sum, maxElement);

unittest { assert([[2, 10], [11]].maximumWealth == 12); }
```
Mar 08