不动点组合子

✍ dations ◷ 2025-08-23 15:47:38 #Lambda演算,不动点,组合子逻辑

不动点组合子(英语:Fixed-point combinator,或不动点算子)是计算其他函数的一个不动点的高阶函数。

函数 f 的不动点是将函数应用在输入值 x 时,会传回与输入值相同的值,使得 f(x) = x。例如,0 和 1 是函数 f(x) = x2 的不动点,因为 02 = 0 而 12 = 1。鉴于一阶函数(在简单值比如整数上的函数)的不动点是个一阶值,高阶函数 f 的不动点是另一个函数 g 使得 f(g) = g。那么,不动点算子 fix 的定义是

使得对于任何函数 f

不动点组合子它们可以用非递归的 lambda抽象来定义,在 lambda演算中的函数都是匿名的。然而在命令式编程语言中的递归,或许限制只能以呼叫函数名称作为参数来实作。在函数式编程语言中的不动点,以 lambda抽象来定义的Y组合子为:

则允许匿名函数足够逹成递归的作用,即递归函数。应用于带有一个变量的函数,Y组合子通常不会终止。将 Y组合子应用于二或更多个变量的函数,会获得更有趣的结果。第二个变量可当作计数器或索引。由此产生的函数行为,表现出如命令式语言中一个whilefor循环。

这个组合子也是 Curry悖论的核心,演示了无型别的 lambda演算是一个不稳固的推论系统,因由 Y组合子允许一个匿名表达式来表示零或者甚至许多值,这在数理逻辑上是不一致的。

在无类型lambda演算中众所周知的(可能是最简单的)不动点组合子叫做Y组合子。它是Haskell B. Curry发现的,定义为

注意Y组合子意图用于传名求值策略,因为 (Y g)在传值设置下会发散(对于任何g)。

在数学的特定形式化中,比如无类型lambda演算和组合演算中,所有表达式都被当作高阶函数。在这些形式化中,不动点组合子的存在性意味着“所有函数都至少有一个不动点”,函数可以有多于一个不同的不动点。

在其他系统中,比如简单类型lambda演算,不能写出有良好类型(well-typed)的不动点组合子。在这些系统中对递归的任何支持都必须明确的增加到语言中。带有扩展的递归类型的简单类型lambda演算,可以写出不动点算子,“有用的”不动点算子(它的应用总是会返回)的类型将是有限制的。

例如,在Standard ML中Y组合子的传值调用变体有类型∀a.∀b.((a→b)→(a→b))→(a→b),而传名调用变体有类型∀a.(a→a)→a。传名调用(正则序)变体在应用于传值调用的语言的时候将永远循环下去 -- 所有应用Y(f)展开为f(Y(f))。按传值调用语言的要求,到f的参数将接着展开,生成f(f(Y(f)))。这个过程永远重复下去(直到系统耗尽内存),而不会实际上求值f的主体。

考虑阶乘函数(使用邱奇数)。平常的递归数学等式

可以用lambda演算把这个递归的一个“单一步骤”表达为

这里的"f"是给阶乘函数的占位参数,用于传递给自身。函数F进行求值递归公式中的一个单一步骤。应用fix算子得到

Y组合子的可以在传值调用的应用序求值中使用的变体,由普通Y组合子的部分的η-展开给出:

Y组合子用SKI-演算表达为

另一个常见不动点组合子是图灵不动点组合子(阿兰·图灵发现的):

相关

  • Pa5f26d17s22,8,18,32,20,9,2主条目:镤的同位素镤(英语:Protactinium,旧译作鎃)是一种放射性化学元素,化学符号为Pa,原子序为91。镤是一种银灰色、密度大的锕系元素,容易与氧、水蒸汽
  • 马其顿语马其顿语(马其顿语:македонски,罗马化:makedonski,IPA:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Un
  • 杰斐逊·戴维斯杰斐逊·戴维斯(英语:Jefferson Davis,1808年6月3日-1889年12月6日),美国陆军军官、政治人物,因于美国内战期间担任唯一一任美利坚联盟国总统而知名。戴维斯于内战之前历事密西西比
  • 乳腺管乳腺管(Lactiferous ducts)是连结乳腺各小叶和乳头的树状分枝管腺系统。在乳汁生成时,乳汁会透过平滑肌的收缩,经由乳腺管移动到乳头。乳腺管内壁为由肌上皮细胞支撑著的柱状上
  • 2012年夏季奥林匹克运动会开幕式入场旗手以下为2012年夏季奥林匹克运动会开幕典礼各代表团入场时的旗手列表。本届奥运会共有205个代表团参加,根据国际奥委会规则,开幕式入场次序除希腊代表团以奥林匹克发源地首先入
  • 吴鸿甲吴鸿甲(1851年-1902年后),字唱初、号昶仙,江苏江阴县人,清朝官员、进士出身。同治十二年(1873年),江苏乡试中举;光绪二十年(1886年),登进士,同年五月,改翰林院庶吉士。次年,考取镶黄旗觉罗官
  • BK-1125炮艇BK-1125炮艇是苏联海军在第二次世界大战期间使用的内河炮艇,该种炮艇是在一个吃水浅的内河艇艇身前方加上一个T-34/76坦克炮塔,后方再加上一个机枪塔而成,部分BK-1125炮艇会把
  • 狸藻科参见内文狸藻科(学名:Lentibulariaceae)多年生沉水或漂浮之双子叶植物,该科植物共有4属,170种,全世界均有分布,为相当普遍之捕虫植物。在中国或台湾,该科草本植物有2属19 种,无根性,冬
  • 江文 (1914年)江文(1914年-2010年8月18日),原名陈辉侃,别名江腾芳,男,湖南浏阳人,中国人民解放军将领,中国人民解放军开国少将。曾任中国人民解放军沈阳军区通信处处长、中国人民解放军总参谋部通
  • 国场翼国场翼(日语:國場 翼/こくば つばさ ,1993年12月5日-)是一名出身于日本冲绳县宇流麻市的棒球选手,司职投手,目前效力于日本职棒埼玉西武狮。