Existe uma estratégia de redução normalizada (ou permanente) para combinadores não tipados?

8

Inspirado por essa pergunta , fiquei curioso para saber se havia uma estratégia de redução para combinadores de SKI não tipificados que era normalizada ou perpétua.

Conforme descrito aqui (Twelfed aqui ), as regras não determinísticas do cálculo combinador são as seguintes:

Euxx

Kxyx

Sxyzxz(yz)

se x x xyxyxx

se y y xyxyyy

Rob Simmons
fonte

Respostas:

8

Os combinadores de SKI foram utilizados como técnica de implementação do Miranda, uma linguagem funcional preguiçosa desenvolvida por David Turner. A estratégia de redução que você procura é simplesmente realizar as reduções da esquerda para a direita (também conhecida como ordem normal ou redução de chamada por nome). Isso é chamado de redução do combinador de SKI e é naturalmente preguiçoso. Se existir uma sequência de redução normalizada, essa estratégia de redução a encontrará.

Um problema com os combinadores de SKI é que eles têm a propriedade infeliz de resultar em uma explosão exponencial no tamanho do código durante a redução.

Vejo:

  • DA Turner. Uma nova técnica de implementação para linguagens aplicativas. Suave. Pract. e Exper., 9, pp. 31-49, 1979.

  • Cálculo lambda e combinadores: uma introdução, segunda edição de JR Hindley e JP Seldin

Dave Clarke
fonte