许多常用的函数属性都有简洁的名称。例如,associativity,commutativity,transitivity等
我正在创建一个与QuickCheck一起使用的库,它提供了这些属性和其他属性的简写定义。
我有一个问题是idempotence一元函数。函数f是幂等的iif∀x。 f x == f(f x)。
这个属性有一个有趣的概括,我正在努力寻找一个类似的简洁名称。为了避免通过建议选择偏向于人们的姓名选择,我将其命名为P并提供以下定义:
函数f具有关于giif∀x的P属性。 f x == f(g x)。我们可以通过用P来重新定义幂等性来看待这是幂等性的概括。函数f是幂等的,如果它具有相对于它自身的P属性。
要确定这是一个有用的属性,请注意它可以证明可以用来实现许多常见优化的重写规则。当g是某种规范化函数时,这通常但不总是出现。一些例子:
length
相对于map
f
是P(适用于f的所有选择)minimum
相对于nub 你会说这个属性的名字是什么?
答案 0 :(得分:14)
可以说map f
是length
- 保留,或者length
在map f
下是不变的。那怎么样: