Yeah, it seems that MAP, especially nested MAPs, aren't as fast as many of the other primitives, so I do my best to avoid it. I try to use COMBINATIONS and COMBINE instead. Here are a couple examples of how to do so (examples taken from problems discussed here: What should this function be named? - (answer group), because it is a recent topic that I tried to figure out how to optimize):
First, we set the variable "Table" to:
This function flattens that irregular table, but uses nested maps:
While this uses COMBINATIONS instead:
Similarly, we can set "Table" to:
And then use COMBINE to reverse the process:
When testing, I found that nested maps (and recursive functions), when given large lists, took longer, lagged, and with extremely large lists actually exceeded the call stack size. However, in this particular instance, I failed to determine a way to use COMBINE, COMBINATIONS, or even RESHAPE (in the hopes of finding out how it compares with @qw23's solution) and @qw23 did come up with a perfectly good solution that avoids MAP.
The reason why MAP is so slow is actually explained here.