(Translated by https://www.hiragana.jp/)
组合子逻辑 - 维基百科,自由的百科全书 とべ转到内容ないよう

组合逻辑

维基百科ひゃっか自由じゆうてき百科ひゃっかぜん

组合逻辑これMoses Schönfinkel哈斯凱爾·加里かり介入かいにゅうてき一种符号系统,ようらいしょうじょ数理すうり逻辑ちゅう变量てき需要じゅよう。它最近在きんざい计算つくえ科学かがくちゅうよう做计さんてき论模がた设计函数かんすうしき编程语言てきもと础。它所もと于的组合ただ使用しよう函数かんすう应用あるはやさきてい义的组合子来こらいてい义从它们てきまいりすうとくてき结果てきこう阶函すう

数学すうがくちゅうてき组合逻辑

[编辑]

组合逻辑图作为简单的もと逻辑,它能きよしきよしざい逻辑符号ふごうちゅうてきりょう变量てき义,并真正しんせいてきけしじょ对它们的需要じゅようしょうじょりょう变量てき另一种方しき蒯因てき谓词はこつきかん多数たすう组合逻辑けい统超りょう一阶逻辑的表达能力,蒯因てき谓词はこてきひょう能力のうりょくとう价于いち阶逻辑(Quine [1960] 1966)。

组合逻辑てき最初さいしょ发明しゃSchönfinkel,ざい1929ねんきさき基本きほん停止ていしりょう发表著作ちょさく。Curryざい1927ねん[1]晚期ばんき哥廷大学だいがく博士はかせてき时候おもしん发现りょう组合ざい1930年代ねんだいきさき邱奇かずてき学生がくせいざいりん斯顿发明りょう一个竞争的函数抽象的形式化,就是lambda演算えんざん,它比组合逻辑さら流行りゅうこう。这些历史上しじょうてき意外いがい事件じけんてき结果ちょくいたざい1960年代ねんだい1970ねん代理だいり论计さんつくえ科学かがく开始かん兴趣于组ごう逻辑,关于这个ぬし题的几乎所有しょゆう工作こうさく哈斯凯尔·柯里かずてき学生がくせい们,ある时的Robert Feys做的。CurryFeys (1958)かずCurryとうじん(1972) 纵览りょう组合逻辑てき早期そうき历史。组合逻辑lambda演算えんざんてきさら现代てき平行へいこう处置さん见Barendregt(1984),还评论了达纳·斯科とくざい1960年代ねんだい1970年代ねんだい为组ごう逻辑设计てき模型もけい

计算ちゅうてき组合逻辑

[编辑]

ざい计算つくえ科学かがくちゅう,组合逻辑よう计算せいなか计算证明论てき简化模型もけい。这个论尽かん简单,ただし获了计算ほん质的很多根本こんぽんとくせい

组合逻辑以被さくlambda演算えんざんてき变体,它把lambdaひょう达式(もちいらいまこと许函すう抽象ちゅうしょうがえだい组合てき有限ゆうげん集合しゅうごう,它们包含ほうがん自由じゆう变量てき原始げんし函数かんすう。很容易よういlambdaひょう达式变换なり组合ひょう达式,并且いん为组ごう归约lambda归约よう简单,它已经被よう做用软件ちゅうてきぼう严格てき函数かんすうしき编程语言かたけんてき图归约机てき实现もと础。

还可以用很多其他方式ほうしきらいまち它,很多早年そうねんてき论文证明りょうかく种组ごういたかく种逻辑公理こうりてきとう价性[Hindley and Meredith, 1990]。

lambda演算えんざん概要がいよう

[编辑]

lambda演算えんざん关注てきさけべ做lambda-项的对象,它们れつ形式けいしきいちてき符号ふごうくし

  • v
  • λらむだv.E1
  • (E1 E2)

这里てきv变量名字みょうじ,它取预定义变りょう名字みょうじてき无限集合しゅうごう,而E1E2lambda-项。かたちλらむだv.E1てき项叫做抽象ちゅうしょう。变量vさけべ抽象ちゅうしょうてき形式けいしきさんすう,而E1抽象ちゅうしょうてき主体しゅたい”。

λらむだv.E1表示ひょうじいち个函すう,它应よう于一个参すう,绑定形式けいしきさんすうvいた这个さんすう接着せっちゃく计算E1てき结果值---就是说,它返かいE1,带有vてき所有しょゆう现被さんすうしょがえだい

かたち如 (E1 E2)てき项叫做应用。应用けん函数かんすう调用ある执行:调用E1しょ代表だいひょうてき函数かんすう,带有E2さく为它てきさんすう,并计さん结果。如果E1(ゆう时叫做applicand)いち抽象ちゅうしょう,则这个项以被归约:さんすうE2以被だい换如E1てき主体しゅたいちゅうE1てき形式けいしきさんすうてき位置いちじょう,而结はていち个新てきlambda项,它等价于きゅうてき。如果いち个lambda项不包含ほうがんがた如 (λらむだv.E1 E2)てき项,则它不能ふのう归约,而被しょう为是范式

おもて达式E[v := a]表示ひょうじ接受せつじゅ项E并把vてき所有しょゆう自由じゆう现替だい为aてき结果。所以ゆえんわが们写

(λらむだv.E a) => E[v := a]

于方便びんわが们用 (a b c d ... z)らい简写 (...(((a b) c) d) ... z)。(就是说,应用ひだり结合てき)。

归约てき这个てい义的动机获所有数ゆうすうがく函数かんすうてきほん质行为。れい如,こう虑计算数さんすうてき平方へいほうてき函数かんすうわが们写

xてき平方ひらかたただしx*x

使用しよう"*"らい指示しじ乘法じょうほう)。这里てきx这个函数かんすうてき形式けいしきさんすうよう计算一个特定参数的平方,如3,わが们把它插入そうにゅういた这个てい义中形式けいしきさんすうてき位置いちじょう

3てき平方へいほう3*3

要求ようきゅう值表达式3*3てき结果,わが们必须诉诸我们关于乘ほうすう3てき识。よし为任なん计算简单てき就是ざい适当基本きほんさんすうじょうてき适当函数かんすうてき计算てき复合,这个简单だい原理げんりあし够捕获计さんてきほん质机せい。此外,ざいlambda演算えんざんちゅう概念がいねん3*需要じゅようにんなん额外てい基本きほん运算あるつねりょう就可以表示ひょうじ出来できゆう可能かのうざいlambdaひょう达式ちゅう确定いち些项,ざい做适あいてきかい释的时候,它们てきひょう现得如同すう3乘法じょうほう运算

やめlambda演算えんざんざい计算せい上等じょうとう价于关于计算てきにんなん其他乎为しんてき模型もけい包括ほうかつ图灵つくえてき能力のうりょく;就是说,在任ざいにんなん这些模型もけいちゅう完成かんせいてき计算以用lambda演算えんざんひょう达,たんまたしかすえ邱奇-图灵论题,这些模型もけい以表达任なん可能かのうてき计算。

可能かのうれいじん惊奇,ただ使用しようもと于对项中变量てき简单文字もじだい换的函数かんすう抽象ちゅうしょう应用てき简单概念がいねん,lambda演算えんざん以表达任なんそうぞう出来できてき计算。ただしさら寻常てき甚至抽象ちゅうしょう需要じゅようてき组合逻辑就是とう价于lambda演算えんざんてき计算模型もけい,它不需要じゅよう抽象ちゅうしょう

组合演算えんざん

[编辑]

いん为在lambda演算えんざんちゅう抽象ちゅうしょうせいづくり函数かんすうてきただいち方式ほうしきざい组合演算えんざんちゅう必须ゆうぼう种东西にしがえだい它。さい使用しよう抽象ちゅうしょう,组合演算えんざん提供ていきょうりょう有限ゆうげんてき基本きほん函数かんすうてき集合しゅうごう,其他函数かんすう以用它们らい构建。

组合

[编辑]

组合项是れつ形式けいしきいち

  • v
  • P
  • (E1 E2)

这里てきvいち个变りょう,P基本きほん函数かんすういち,而E1E2组合项。基本きほん函数かんすう自身じしん组合ある包含ほうがん自由じゆう变量てき函数かんすう

组合てきれい

[编辑]

组合てきさい简单てきれいI恒等こうとう组合てい义为

(I x) = x

对于所有しょゆうてき项x。另一个简单的组合子是Kせいづくりつねりょう函数かんすう:(K x)对于にんなんさんすうかえしかいxてき函数かんすう所以ゆえんわが们定义

((K x) y) = x

对于所有しょゆうてき项xy。あるものふく从同lambda演算えんざんちゅう多重たじゅう应用どう样的约定,

(K x y) = x

だい三个组合子是S,它是应用てき一般いっぱん版本はんぽん

(S x y z) = (x z (y z))

Sくびさきはたzぶん别代换到xy,しかきさきさいしょう两个结果进行应用操作そうさ

给出SKI自身じしん就不必须てきりょういん为可以建造けんぞう其他两个:

((S K K) x)
=(S K K x)
= (K x (K x))
= x

对于にんなんてき项x。注意ちゅういつきかん((S K K)x) = (I x)对于にんなにx,(S K K)自身じしん不等ふとうIわが们称这种项是外延がいえん相等そうとうてき外延がいえん相等そうとう获了函数かんすうてき等式とうしきてき数学すうがく概念がいねん:两个函数かんすう相等そうとうてき,如果它们对于しょうどうてきまいりすう总是生成せいせいしょうどうてき结果。相反あいはんてき,项自身じしん获了函数かんすうてきない涵相とうてき概念がいねん:两个函数かんすう相等そうとうてきとう且仅とう它们ゆうしょうどうてき实现。ゆう很多实现恒等こうとう函数かんすうてき方式ほうしき;(S K K)I其中てき方式ほうしき,(S K S)也是。わが们将使用しようとうらい指示しじ外延がいえん相等そうとう保留ほりゅうとう给同一的组合子项。

さらゆうおもむきてき组合动点组合あるY组合,它可以用らい实现递归

S-Kもとてきかん备性

[编辑]

可能かのうかいれいじん惊奇,こと实上SK以组あいおこりらい生成せいせい外延がいえん相等そうとう于任なんlambda项的组合しょ以依すえ邱奇-图灵论题,とう价于にんなん计算てき函数かんすう。证明提出ていしゅついち个变换T[ ],它转换一个任意にんいてきlambda项到とう价的组合

T[ ]てい义如

  1. T[V] = > V
  2. T[(E1 E2)] = >(T[E1] T[E2])
  3. T[λらむだx.E] = > (K T[E])(如果xざいEちゅうぼつゆう自由じゆう现)
  4. T[λらむだx.x] = > I
  5. T[λらむだx.λらむだy.E] = > T[λらむだx.T[λらむだy.E]](如果xざいEちゅう自由じゆう现)
  6. T[λらむだx.(E1 E2)] =>(S T[λらむだx.E1] T[λらむだx.E2])

lambda项转换成组合

[编辑]

れい如,わが们可以转换λらむだx.λらむだy.(y x)为组ごう

T[λらむだx.λらむだy.(y x)]
= T[λらむだx.T[λらむだy.(y x)]](つう过5)
= T[λらむだx.(S T[λらむだy.y] T[λらむだy.x])](つう过6)
= T[λらむだx.(S I T[λらむだy.x])](つう过4)
= T[λらむだx.(S I (K x))](つう过3)
= (S T[λらむだx.(S I)] T[λらむだx.(K x)])(つう过6)
= (S (K (S I)) T[λらむだx.(K x)])(つう过3)
= (S (K (S I)) (S T[λらむだx.K] T[λらむだx.x]))(つう过6)
= (S (K (S I)) (S (K K) T[λらむだx.x]))(つう过3)
= (S (K (S I)) (S (K K) I))(つう过4)

如果わが们应よう这个组合于任なん两个项xy,它可以归约到如下:

(S (K (S I)) (S (K K) I) x y)
= (K (S I) x (S (K K) I x) y)
= (S I (S (K K) I x) y)
= (I y (S (K K) I x y))
= (y (S (K K) I x y))
= (y (K K x (I x) y))
= (y (K (I x) y))
= (y (I x))
=(y x)

组合表示ひょうじ (S (K (S I)) (S (K K) I))しょう应的lambda项λらむだx.λらむだy.(y x)よう长很,这是典型てんけいてき一般いっぱんてき,T[ ]构造以把长度为nてきlambda项展开为长度为Θしーた(3nてき组合项。

T[ ]变换てきかい

[编辑]

T[ ]变换てき目的もくてきようけしじょ抽象ちゅうしょう。两个特殊とくしゅじょう况,规则34平凡へいぼんてきλらむだx.xあかり显等价于I,而λらむだx.Eあかり显等价于(K E),如果xざいEちゅう自由じゆう现的。

ぜん两个规则也是简单てき:变量转换为自身じしんどおり过简单的转换applicandさんすういた组合ざい组合项中まこと许的应用转换为组ごう

ゆうおもむきてき规则56。规则5简单てきこえたたえよう转换一个复杂的抽象为组合子,わが们必须首さき它的主体しゅたい转换なり组合接着せっちゃくしょうじょ这个抽象ちゅうしょう。规则6实际じょうしょうじょ这个抽象ちゅうしょう

λらむだx.(E1 E2)いち个函すう,它接受せつじゅ一个参数比如a,并把它代换到lambda项 (E1 E2)ちゅうxてき位置いちじょう生成せいせい (E1 E2)[x : = a]。ただしだい换aいた (E1 E2)ちゅうxてき位置いちじょうどう于代换它到E1E2しゃちゅう所以ゆえん

(E1 E2)[x := a] =(E1[x := a] E2[x := a])
(λらむだx.(E1 E2) a) = ((λらむだx.E1 a) (λらむだx.E2 a))
=(S λらむだx.E1 λらむだx.E2 a)
= ((S λらむだx.E1 λらむだx.E2) a)

つう外延がいえん相等そうとう

λらむだx.(E1 E2) =(S λらむだx.E1 λらむだx.E2)

所以ゆえんよう找到とうλらむだx.(E1 E2)てき组合,找到とう价于 (S λらむだx.E1 λらむだx.E2)てき组合就足够了,而

(S T[λらむだx.E1] T[λらむだx.E2])

显然あい适。E1E2まい个都包含ほうがん严格てき (E1 E2)さらすくなてき应用,所以ゆえん递归必定ひつじょう终止于根本こんぽんぼつゆう应用てきlambda项之じょう---よう么是いち个变りょうよう么是がたλらむだx.Eてき项。

变换てき简化

[编辑]

ηいーた-归约

[编辑]

つうT[ ]变换生成せいせいてき组合以做てきさらしょう,如果わが们采ようηいーた-归约规则:

T[λらむだx.(E x)] = T[E](如果xざいEちゅう自由じゆうてき

λらむだx.(E x)いち个函すう,它接受せつじゅいち个参すうx并应よう函数かんすうE于它うえ;这外延がいえん相等そうとう于函すうE自身じしんよし此足够转换Eいた组合形式けいしき

さいよう这种简化,上面うわつらてきれい变成:

T[λらむだx.λらむだy.(y x)]
= ...
= (S (K (S I)) T[λらむだx.(K x)])
= (S (K (S I)) K) (つうηいーた-归约)

这个组合とう价于はやさきてきさら长的个:

(S (K (S I)) K x y)
= (K (S I) x (K x) y)
= (S I (K x) y)
= (I y (K x y))
= (y (K x y))
=(y x)

类似てきT[ ]变换てき最初さいしょ版本はんぽん恒等こうとう函数かんすうλらむだf.λらむだx.(f x)变换なり (S (S (K S) (S (K K) I)) (K I))。つうηいーた-归约规则,λらむだf.λらむだx.(f x)变换なりI

いちてんもと

[编辑]

ゆういちてんもと(one point basis),所有しょゆう组合从它复合而外延がいえんとう于任なんlambda项。这种もとてきさい简单てきれい{X}:

Xλらむだx.((xS)K)

难验证:

X (X (X X)) =ηいーたβべーた K
X (X (X (X X)))) =ηいーたβべーた S.

いん为{K, S}もととく{X}也是もと

BC组合

[编辑]

じょりょう组合SKこれがいSchönfinkelてき著作ちょさくちゅう包含ほうがんりょう现在さけべBCてき两个组合,带有如下归约:

(C a b c) =(a c b)
(B a b c) = (a (b c))

还解释了如何いかただ使用しようSKらいひょう达它们。

这些ひょう达式ざい谓词逻辑あるlambda演算えんざん转换なり组合ひょう达式てき时候非常ひじょう有用ゆうよう。它们也被CurryさらきさきらいてきDavid Turnerところ使用しよう们的名字みょうじやめ经关联到りょう它们てき应用うえりょう使用しよう这些组合わが们可以扩てん变换规则为如

  1. T[V] = > V
  2. T[(E1 E2)] = >(T[E1] T[E2])
  3. T[λらむだx.E] = > (K T[E]) (如果xざいEちゅう自由じゆうてき
  4. T[λらむだx.x] = > I
  5. T[λらむだx.λらむだy.E] = > T[λらむだx.T[λらむだy.E]](如果xざいEちゅう自由じゆうてき
  6. T[λらむだx.(E1 E2)] => (S T[λらむだx.E1] T[λらむだx.E2])(如果xざいE1E2しゃちゅう自由じゆうてき
  7. T[λらむだx.(E1 E2)] => (C T[λらむだx.E1] E2)(如果xざいE1ちゅう自由じゆうてきただしざいE2ちゅう自由じゆうてき
  8. T[λらむだx.(E1 E2)] => (B E1 T[λらむだx.E2])(如果xざいE2ちゅう自由じゆうてきただしざいE1ちゅう自由じゆうてき

使用しようBC组合λらむだx.λらむだy.(y x)てき变换如下:

T[λらむだx.λらむだy.(y x)]
= T[λらむだx.T[λらむだy.(y x)]]
= T[λらむだx.(C T[λらむだy.y] x)] (つう过规则7)
= T[λらむだx.(C I x)]
= (C I) (ηいーた-归约)
= C*(传统规范记号:X* = X I
= I'(传统规范记号:X' = C X

(C I x y)てき确归约到 (y x):

(C I x y)
=(I y x)
=(y x)

BCてき目的もくてきSてき有限ゆうげん版本はんぽんS接受せつじゅいち个值,并把ざい应用ぜん它代换入applicand它的さんすうないCただざいapplicandない进行だい换,而Bただざいさんすうない进行だい换。

这些组合てき现代名字みょうじげん哈斯凱爾·加里かりざい1930ねんてき博士はかせ论文(まいりB,C,K,Wけい)。ざいSchönfinkelてき最初さいしょ著作ちょさくちゅう现在てきS, K, I, BCぶん别叫做S, C, I, ZT。

CLKあずかCLI演算えんざん
[编辑]

ざい本文ほんぶん描述てきCLKCLI演算えんざん必须做出区分くぶん。这种别对应于ざいλらむだKλらむだI演算えんざん间的别。不同ふどうλらむだK演算えんざんλらむだI演算えんざんげんせい抽象ちゅうしょう为:

λらむだv.E1这里てきvざいE1中有ちゅうういたりしょういち自由じゆう现。

さく为结论,组合K不出ふしゅつ现在λらむだI演算えんざんCLI演算えんざんちゅうCLIてきつねりょうゆうI, B, CS,这形成けいせいりょう所有しょゆうCLI项可以从它复あい出来できてきもとBCかたぎK所有しょゆうλらむだI项可以转换成とう价的CLI组合すえ类似于前めん提供ていきょうてきλらむだK项转换成CLK组合てき规则。まいり见Barendregt (1984)だい9しょう

ぎゃく转换

[编辑]

从组ごう项到lambda项的转换L[ ]平凡へいぼんてき

L[I] = λらむだx.x
L[K] = λらむだx.λらむだy.x
L[C] = λらむだx.λらむだy.λらむだz.(x z y)
L[B] = λらむだx.λらむだy.λらむだz.(x (y z))
L[S] = λらむだx.λらむだy.λらむだz.(x z (y z))
L[(E1 E2)] =(L[E1] L[E2])

ただし要注意ようちゅうい这个变换わが们见到てきにんなん版本はんぽんてきT[ ]てきぎゃく变换。

组合演算えんざんてき不可ふか判定はんていせい

[编辑]

一个组合子项是否有规范形式,两个组合项是とう价的とうとう不可ふか判定はんていてきしゃとう价于 lambda项相应问题的不可ふか判定はんていせいただしゆう一个直接证明如下:

くびさき,观察到项

Ωおめが = (S I I (S I I))

ぼつゆう规范形式けいしきいん为它ざい三个步骤之后归约到自身,如下:

(S I I (S I I))
= (I (S I I) (I (S I I)))
= (S I I (I (S I I)))
= (S I I (S I I))

而且ぼつゆう其他归约次序じじょ以使ひょう达式さらたん些。

现在,かりN检测范式てき组合使つかいとく

(N x) => T,如果xゆう规范形式けいしき
F,ぼつゆう规范形式けいしき

(这里てきTFつね规的lambda演算えんざんてき假定かていλらむだx.λらむだy.xλらむだx.λらむだy.yてき变换。 组合版本はんぽんT = KF = (K I))。

现在设

Z = (C (C (B N (S I I)) Ωおめが) I)

现在こう虑项(S I I Z)。(S I I Z)ゆう规范形式けいしき吗?它有规范形式けいしきとう且仅とうしたれつ也有やゆう

(S I I Z)
= (I Z (I Z))
= (Z (I Z))
=(Z Z)
= (C (C (B N (S I I)) Ωおめが) I Z) (Zてきてい义)
= (C (B N (S I I)) Ωおめが Z I)
= (B N (S I I) Z Ωおめが I)
= (N (S I I Z) Ωおめが I)

现在わが们需よう应用N于(S I I Z)。(S I I Z)よう么有规范形式けいしきよう么没ゆう。如果它确实有规范形式けいしき,则前述ぜんじゅつ归约为如

(N (S I I Z) Ωおめが I)
= (K Ωおめが I) (Nてきてい义)
= Ωおめが

ただしこれΩおめがぼつゆう规范形式けいしき所以ゆえんわが们得いた矛盾むじゅんただし如果 (S I I Z)ぼつゆう规范形式けいしき,则前述ぜんじゅつ归约为如

(N (S I I Z) Ωおめが I)
= (K I Ωおめが I) (Nてきてい义)
=(I I)
= I

意味いみ (S I I Z)てき范式简单てきI,这是另一个矛盾むじゅん所以ゆえんかり设的范式组合N存在そんざい

应用

[编辑]

函数かんすうしき语言てき编译

[编辑]

函数かんすうしき编程语言经常もと于lambda演算えんざんてき简单而普遍ふへんてき语义。

David Turner使用しよう它的组合实现りょうSASL编程语言。

Kenneth E. IversonざいてきJ编程语言ちゅう使用しようりょうもと于Curryてき组合てきげん语(primitive),J语言APL语言てききさき继者。这使とくIverson达成りょう隐式编程,就是说,编程さいよう包含ほうがん变量てき函数かんすうひょう达式,并一起使用与这种程序共同工作的强力工具。结果在任ざいにんなん带有よう户定义算てき类APL语言ちゅう隐式编程可能かのうてき[2]

逻辑

[编辑]

Curry-Howardどう蕴涵りょうざい逻辑编程间的联系:まいちょく觉逻辑てき有效ゆうこうてき定理ていり证明直接ちょくせつ对应于一个有类型てきlambda项的归约,たんまたしか定理ていり自身じしん也通过函すう类型标志(signature)らい识别。とく别是,ゆう类型てき组合逻辑对应于证明论なかてきまれ尔伯とくけい

KS组合对应于公理こうり

AK: A → (B → A),
AS: (A → (B → C)) → ((A → B) → (A → C)),

而函すう应用对应于肯定こうてい前件ぜんけん规则

MP:从A且A → B推出B。

ゆかりAK, ASMP组成てき演算えんざん对于ちょく觉逻辑的蕴涵へんだんかん备的。こう所有しょゆうえんじ绎闭あいてき公式こうしきてき集合しゅうごうW,按包含ほうがんはいじょ。则ちょくKripkeかまちわが们定义在这个かまちないてき模型もけい

这个てい义服从对→てき满足てき条件じょうけんざいいち方面ほうめん,如果,并且使つかいとく,则通过肯定こうてい前件ぜんけんざい另一方面ほうめん,如,则通过えんじ定理ていりいんてきえんじ绎闭つつみてき一个元素使得,

设Aざい演算えんざんちゅう不能ふのう证明てきにんなん公式こうしき。则Aぞく于非そら集合しゅうごうてきえんじ绎闭つつみX,所以ゆえん,而Aちょく有效ゆうこうてき

まいり

[编辑]

注釋ちゅうしゃく

[编辑]
  1. ^ Seldin, Jonathan. The Logic of Curry and Church. 
  2. ^ Cherlin, Edward. Pure Functions in APL and J. Proceedings of the International Conference on APL '91. 1991: 88–93. ISBN 0897914414. doi:10.1145/114054.114065. 

引用いんよう

[编辑]
  • Moses Schönfinkel, 1924, "Über die Bausteine der mathematischen Logik," translated as "On the Building Blocks of Mathematical Logic" in From Frege to Gödel: a source book in mathematical logic, 1879-1931, Jean van Heijenoort, ed. Harvard University Press, 1967. ISBN 978-0-674-32449-7 The article that founded combinatory logic.
  • Curry, Haskell B.; Robert Feys. Combinatory Logic Vol. I 1. Amsterdam: North Holland. 1958. 
  • Curry, Haskell B.; J. Roger Hindley and Jonathan P. Seldin. Combinatory Logic Vol. II 2. Amsterdam: North Holland. 1972. ISBN 978-0-7204-2208-5. 
  • Field, Anthony J. and Peter G. Harrison, 1998. Functional Programming. . Addison-Wesley. ISBN 978-0-201-19249-0
  • Paulson, Lawrence C., 1995. Foundations of Functional Programming.页面そん档备份そん互联网档あん) University of Cambridge.
  • Sørensen, Morten Heine B. and Paweł Urzyczyn, 1999. Lectures on the Curry-Howard Isomorphism. University of Copenhagen and University of Warsaw, 1999.
  • 1920-1931 Currys block notes
  • Hindley, Roger, and Meredith, 1990, "Principal Type-Schemes and Condensed Detachment," Journal of Symbolic Logic 55: 90-105
  • Hendrik Pieter Barendregt, 1984. The Lambda Calculus, Its Syntax and Semantics. Studies in Logic and the Foundations of Mathematics, Volume 103, North-Holland. ISBN 978-0-444-87508-2
  • Quine, W. V., [1960] 1966. "Variables explained away." Chapter 23 in W. V. Quine, Selected Logic Papers, 227–235. New York: Random House. Originally read by invitation to the American Philosophical Association in April 1960 and published in their Proceedings.