私はカレーハワード同型に出会ったのは、プログラミングの人生の比較的遅い時期でした。おそらく、これが私を完全に魅了する一因となっています。これは、すべてのプログラミング概念について、形式論理には正確な類似物が存在することを意味し、その逆も同様です。ここにそのような類推の「基本的な」リストがあります。
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
goto | jumping to conclusions