【问题标题】:What is the name of this generalization of idempotence?幂等性的这种概括的名称是什么?
【发布时间】:2011-12-01 17:52:05
【问题描述】:

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

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

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

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

函数 f 具有关于 g iif ∀x 的 P 属性。 f x == f (g x)。我们可以通过根据 P 重新定义幂等性来将其视为幂等性的推广。如果函数 f 具有关于自身的 P 属性,则它是幂等的。

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

  • length 相对于 map f 是 P(对于 f 的所有选择)
  • 转换为CNF 相对于转换为DNF 是P(反之亦然)
  • Unicode normalization 形成 NFC 相对于标准化形成 NFD 是 P(反之亦然)
  • minimum 是相对于 nub 的 P

你会给这个属性取什么名字?

【问题讨论】:

    标签: optimization haskell naming quickcheck


    【解决方案1】:

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

    • g 保留 f。
    • f 在(应用)g 下是不变的。

    【讨论】:

    • 另外,如果 f 在一组操作 g 下是不变的,那么我们可以说它在 g 下是对称的。
    • 我知道该属性为g-invariant。
    猜你喜欢
    • 2011-02-10
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2016-12-14
    • 2019-10-10
    相关资源
    最近更新 更多