저는 프로그래밍 생애에서 비교적 늦게 Curry-Howard Isomorphism을 접하게 되었고 아마도 이것이 제가 완전히 매료 된 데 기여했을 것입니다. 이는 모든 프로그래밍 개념에 대해 형식 논리에 정확한 아날로그가 존재하며 그 반대의 경우도 있음을 의미합니다. 여기 내 머리 꼭대기에서 그러한 비유의 "기본"목록이 있습니다.
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
그래서, 제 질문에 : 이 동형의 더 흥미롭고 / 모호한 의미는 무엇입니까? 나는 논리학자가 아니기 때문에이 목록으로 표면을 긁어봤을 뿐이라고 확신합니다.
예를 들어, 논리에서 이름을 알지 못하는 몇 가지 프로그래밍 개념이 있습니다.
currying | "((a & b) => c) iff (a => (b => c))"
scope | "known theory + hypotheses"
그리고 여기에 제가 프로그래밍 용어로 고정하지 않은 몇 가지 논리적 개념이 있습니다.
primitive type? | axiom
set of valid programs? | theory
편집하다:
다음은 응답에서 수집 된 더 많은 등가물입니다.
function composition | syllogism -- from Apocalisp
continuation-passing | double negation -- from camccann