We belive that the truth finally has caught with the following, retired myths.
Funs used to be very slow, slower than
But that is history. Funs was given its own data type
in R6B and was further optimized in R7B.
Now the cost for a fun call falls roughly between the cost for a call
to a local function and
List comprehensions used to be implemented using funs, and in the old days funs were indeed slow.
Nowadays, the compiler rewrites list comprehensions into an ordinary recursive function. Using a tail-recursive function with a reverse at the end would be still faster. Or would it? That leads us to the myth that tail-recursive functions are faster than body-recursive functions.
List subtraction used to have a run-time complexity proportional to the product of the length of its operands, so it was extremely slow when both lists were long.
As of OTP 22 the run-time complexity is "n log n" and the operation will
complete quickly even when both lists are very long. In fact, it is
faster and uses less memory than the commonly used workaround to convert
both lists to ordered sets before subtracting them with