Get the latest tech news
Primitive Recursive Functions for a Working Programmer
Programmers on the internet often use Turing-completeness terminology. Typically, not being Turing-complete is extolled as a virtue or even a requirement in specific domains. I claim that most such discussions are misinformed --- that not being Turing complete doesn't actually mean what folks want it to mean, and is instead a stand-in for a bunch of different practically useful properties, which are mostly orthogonal to actual Turing completeness.
While I am generally descriptivist in nature and am ok with words loosing their original meaningas long as the new meaning is sufficiently commonly understood, Turing completeness is a hill I willdie on. Ok, so we have achieved something remarkable: while we are writing terminating-by-constructionprograms, which are definitely not Turing complete, we have constructed basic programming staples,like boolean logic and data structures, and we have also build some rather complicated mathematicalfunctions, like 2 2N. It’s easy to see that computing A on a Turing Machine using this definition terminates — thisis a function with two arguments, and every recursive call uses lexicographically smaller pair ofarguments.
Or read this on Hacker News