My program has this line:

```
Function<String, Integer> f = (String s) -> s.chars().reduce(0, (a, b) -> 2 * a + b);

```

The function being passed to reduce is not associative. Reduce's documentation says that the function passed must be associative.

How can I rewrite this as an expression which doesn't break reduce's contract?