Skip to content
Latchkey

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