The downside of functional constructs: a quantitative and qualitative analysis of their fix-inducing effects
摘要
The Python programming language features several functional constructs which can bring some benefits, e.g., fewer side effects, easier parallelization, or, in some cases, better comprehensibility due to concise code. This paper investigates the extent to which the addition/modification of certain functional constructs, i.e., lambdas, comprehensions, and map/reduce/filter functions, have higher chances to induce fixes than other changes, as well as how much this correlates with the complexity of the construct, and what is the survival time of such fix-inducing changes. To this aim, we analyze the change history of 200 open-source Python projects accounting for