Ben üzerine geldi Curry-Howard İzomorfizma benim programlama hayatta nispeten geç ve benim tamamen kendisine hayran olmanın belki de bu katkıda bulunur. Bu, her programlama kavramı için biçimsel mantıkta kesin bir analogun bulunduğunu ve bunun tersi olduğunu ima eder. İşte aklıma gelen bu tür benzetmelerin "temel" bir listesi:
program/definition | proof
type/declaration | proposition
inhabited type | theorem/lemma
function | implication
function argument | hypothesis/antecedent
function result | conclusion/consequent
function application | modus ponens
recursion | induction
identity function | tautology
non-terminating function | absurdity/contradiction
tuple | conjunction (and)
disjoint union | disjunction (or) -- corrected by Antal S-Z
parametric polymorphism | universal quantification
Öyleyse, soruma göre: Bu izomorfizmin daha ilginç / belirsiz çıkarımlarından bazıları nelerdir? Mantıkçı değilim, bu yüzden sadece bu listeyle yüzeyi çizdiğime eminim.
Örneğin, mantıkta özlü adların farkında olmadığım bazı programlama kavramları:
currying | "((a & b) => c) iff (a => (b => c))"
scope | "known theory + hypotheses"
Ve işte programlama terimlerine tam olarak sabitlemediğim bazı mantıksal kavramlar:
primitive type? | axiom
set of valid programs? | theory
Düzenle:
Yanıtlardan toplanan bazı eşdeğerler şunlardır:
function composition | syllogism -- from Apocalisp
continuation-passing | double negation -- from camccann