Tôi đến với Thuyết Isomorphism Curry-Howard tương đối muộn trong cuộc đời lập trình của mình, và có lẽ điều này góp phần khiến tôi hoàn toàn bị cuốn hút bởi nó. Nó ngụ ý rằng đối với mọi khái niệm lập trình đều tồn tại một tương tự chính xác trong logic hình thức và ngược lại. Dưới đây là danh sách "cơ bản" của các phép loại suy như vậy, tôi không biết:
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
Vì vậy, đối với câu hỏi của tôi: một số hàm ý thú vị / khó hiểu hơn của thuyết đẳng cấu này là gì? Tôi không phải là nhà logic học vì vậy tôi chắc chắn rằng tôi chỉ mới sơ khai với danh sách này.
Ví dụ: đây là một số khái niệm lập trình mà tôi không biết về các tên dễ hiểu trong logic:
currying | "((a & b) => c) iff (a => (b => c))"
scope | "known theory + hypotheses"
Và đây là một số khái niệm logic mà tôi chưa hiểu rõ về thuật ngữ lập trình:
primitive type? | axiom
set of valid programs? | theory
Biên tập:
Dưới đây là một số điểm tương đương khác được thu thập từ các câu trả lời:
function composition | syllogism -- from Apocalisp
continuation-passing | double negation -- from camccann
goto | jumping to conclusions