JavaScript能判定两个function等价吗?

作者:月影 来源:影月阁 时间:2009-08-13 14:45:00 

这里的等价不是说function的toString相同,也不是说function的引用相同,而是说
对于两个function A和B,如果它们的输入参数相同,返回值必然相同

JavaScript存在这样的判定函数吗?

答案是不存在,证明如下:

假定存在一个function P能判断任意两个一般函数f1和f2是否等价,即

若f1、f2等价,P(f1,f2) return true

若f1、f2不等价, P(f1,f2) return false;

现在我定义一个函数P1

function P1(f1,f2){
    if(P(P,f1) && P(P1,f2)) return false;
    else return P(f1,f2);
}

那么对于P(P,P1)

1) 若P(P,P1) return true,那么P,P1等价,可P1(P,P1)却return false,显然和P,P1等价假设矛盾

2) 若P(P,P1) return false,那么P1(P,P1) return false,而对于任意其它f1,f2,显然P1(f1,f2)的返回值都和P(f1,f2)的返回值完全相同,根据前面的定义,P与P1等价,同P(P,P1) return false矛盾。

综上所述,不存在一个函数P,能够判定JavaScript的两个function等价。

证毕。

标签:function,判断,函数
0
投稿

猜你喜欢

  • 一篇文章带你了解python集合基础

    2022-04-09 14:10:17
  • Python使用wget实现下载网络文件功能示例

    2022-04-28 03:27:46
  • BOF、EOF 属性

    2009-05-11 12:37:00
  • 浅析CMS生成静态页面的两种方案

    2008-03-17 12:51:00
  • Python socket模块方法实现详解

    2021-02-12 20:52:39
  • pandas 添加空列并赋空值案例

    2022-12-04 13:48:16
  • linux CentOS 7.4下 mysql5.7.20 密码改回来的处理方法

    2024-01-25 17:36:56
  • SQL 特殊语句(学习笔记)

    2012-06-06 19:51:33
  • Golang的性能优化和调试技巧

    2024-04-25 15:30:24
  • 小谈访客浏览器分辨率

    2007-10-18 13:12:00
  • Python 获取div标签中的文字实例

    2023-03-27 01:53:53
  • Go语言正则表达式的使用详解

    2024-02-04 11:23:42
  • Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)

    2022-03-02 16:50:47
  • 详解Python实现进度条的4种方式

    2023-07-05 13:31:16
  • 用Python写一个简易版弹球游戏

    2022-02-14 04:03:55
  • JS实现用户管理系统

    2023-08-29 04:51:20
  • Jupyter notebook快速入门教程(推荐)

    2021-02-13 13:53:57
  • Python求两个文本文件以行为单位的交集、并集与差集的方法

    2021-12-25 09:12:18
  • 关于MySQL中隐藏空间的问题

    2009-07-30 08:15:00
  • Python闭包执行时值的传递方式实例分析

    2021-09-22 14:43:50
  • asp之家 网络编程 m.aspxhome.com