O Que É Defunctionalization?
Defunctionalization é uma transformação de programa que elimina funções de ordem superior representando cada valor de função como um construtor de dados distinto e roteando todas as chamadas por uma função apply que faz pattern matching sobre o construtor. O comportamento que era uma função torna-se dados mais um despachante central. O resultado é um programa de primeira ordem sem argumentos com valor de função.
Por que isso importa
Defunctionalization permite que código de ordem superior seja compilado para linguagens ou alvos sem funções de primeira classe, e torna explícito o conjunto de comportamentos possíveis. É uma técnica útil em compiladores e análises de programa inteiro.
Guias relacionados
What Is Closure Conversion?Closure conversion is a compiler transformation that turns nested functions capturing variables into plain fu…
What Is a Higher-Order Function?A higher-order function takes other functions as arguments or returns a function as its result, treating beha…
What Is Pattern Matching?Pattern matching inspects a value against a set of shapes, selecting a branch and binding parts of the value…