Nella mia ricerca di un pratico linguaggio di programmazione completo non-turing, ho prestato attenzione al lambda-calcolo con auto-applicazione non consentita - cioè, x x vietato. Dopo aver preso quella lingua e aumentata con le liste e le operazioni foldl e range , praticamente qualsiasi algoritmo che ho provato finora è implementabile. È banale implementare filter , reverse , head , tail , map , scanl , zip e molti altri - foldl sostituisce la necessità di ricorsione.
Riesci a pensare ad un algoritmo pratico e importante che sarebbe annullabile in quella lingua?
It is no coincidence that all of them use self-application—the application of an expression to itself. It is through self-application that repetitive computation can be simulated in the lambda calculus. Indeed, the third of the previous three examples is famous because it can encode recursive function definitions.
Da link .