这种幂等概括的名称是什么?

时间:2011-12-01 17:52:05

标签: optimization haskell naming quickcheck

许多常用的函数属性都有简洁的名称。例如,associativitycommutativitytransitivity

我正在创建一个与QuickCheck一起使用的库,它提供了这些属性和其他属性的简写定义。

我有一个问题是idempotence一元函数。函数f是幂等的iif∀x。 f x == f(f x)。

这个属性有一个有趣的概括,我正在努力寻找一个类似的简洁名称。为了避免通过建议选择偏向于人们的姓名选择,我将其命名为P并提供以下定义:

函数f具有关于giif∀x的P属性。 f x == f(g x)。我们可以通过用P来重新定义幂等性来看待这是幂等性的概括。函数f是幂等的,如果它具有相对于它自身的P属性。

要确定这是一个有用的属性,请注意它可以证明可以用来实现许多常见优化的重写规则。当g是某种规范化函数时,这通常但不总是出现。一些例子:

你会说这个属性的名字是什么?

1 个答案:

答案 0 :(得分:14)

可以说map flength - 保留,或者lengthmap f下是不变的。那怎么样:

  • g是f-preserving。
  • f在(应用)g。
  • 下是不变的