在我的编程生涯中,我相对较晚才接触到 柯里-霍华德同构,这也许是我完全被它所吸引的原因之一。它意味着,对于每一个编程概念,在形式逻辑中都存在一个精确的类比,反之亦然。下面是我脑海中的一个“基本”类比列表:
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
 
                                
                             
                                
                             
                                
                             
                                
                             
                                
                             
                                
                             
                                
                             
                                
                             
                                
                            