描述无论运行多少次都会产生相同结果的过程的正确术语是啥?
Posted
技术标签:
【中文标题】描述无论运行多少次都会产生相同结果的过程的正确术语是啥?【英文标题】:What is the correct term to describe a procedure that produces the same result irrespective of how many times it is run?描述无论运行多少次都会产生相同结果的过程的正确术语是什么? 【发布时间】:2020-01-31 14:19:39 【问题描述】:假设您想在数据库中创建一个新表。如果您运行一个只包含CREATE...
代码的脚本,那么它会在第一次运行,但如果再次运行则会崩溃,因为它会尝试创建一个已经存在的对象。但是,通过首先添加IF EXISTS ...
逻辑(或DROP TABLE ...
),您可以避免此类错误。
我知道有一个特定的技术术语来描述这个概念或属性,即脚本能够多次运行而不改变仅运行一次脚本的结果的最终结果,但我似乎不能回想一下,我一直找不到。 Multi-something-something? 还是 poly-something-something?
【问题讨论】:
你的意思是确定性吗? 谢谢,但没有 - 我知道有一个具有上述特定含义的特殊术语。 @Kjartan 。 . .我认为 jarlh 是正确的。 “DETERMINISTIC”至少为 SQL 存储过程捕获了这个概念。对于具有唯一键的ORDER BY
的查询,我使用术语“稳定”,但这是特定于排序的。
【参考方案1】:
Idempotent 操作
可以多次应用而不改变结果超出 初次申请。
例如,函数 f
是 idempotent 如果对于 所有 输入 x
它成立
f(x) == f(f(x))
我经常在idempotent HTTP requests 的上下文中遇到这个概念,在函数式编程的上下文中遇到referential transparency 的概念。
【讨论】:
以上是关于描述无论运行多少次都会产生相同结果的过程的正确术语是啥?的主要内容,如果未能解决你的问题,请参考以下文章
无论是 EXISTS 还是 NOT EXISTS,SELECT 查询都会返回相同的结果——为啥?