Actually, wouldn't mapcat be better written in terms of a reduce()?

```
return xs.reduce(function (result, x) {
return result.concat(fn(x));
}, []);
```