资料来源 : Free On-Line Dictionary of Computing
space leak
A data structure which grows bigger, or lives longer, than
might be expected. Such unexpected memory use can cause a
program to require more {garbage collection}s or to run out of
{heap}. Space leaks in {functional program}s usually result
from excessive laziness. For example, the {Haskell} function
sum [] = 0
sum (x:xs) = x + sum xs
when applied to a list will build a chain of closures for the
additions and only when it reaches the end of the list will it
perform the additions and free the storage. Another example
is the function
mean l = sum l / length l
The sum function forces the entire list l to be evaluated and
built in the heap. None of it can be garbage collected until
the length function has consumed it.