代码之家  ›  专栏  ›  技术社区  ›  koen

比较/交叉比较标准

  •  0
  • koen  · 技术社区  · 15 年前

    如果有任何开源代码已经做到了这一点,我很想听听。但我还没看到,所以我正试着自己动手。

    例子:

    variable x = compareCriteriaBetween 3 and 6
    variable y = compareCriteriaLesserThanOrEqual 5
    

    对我来说,最困难的部分是找到一种优雅的方式来比较比较比较区并创建一个交叉点。在本例中,两者之间的交点为“3和5之间”。

    我如何以“告诉-不要问”的方式实现这一点?请注意,compareCriteria可以是完全不相关的(例如,startsWithLetter与betweenNumber)。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Whoever    15 年前

    如果你只是对简单的标准感兴趣,比如 不平等 之间 在3到6之间 作为( 大于等于3 小于等于6 ).如果您将此与逻辑 具有 您可以使用布尔代数来获得( 大于等于3 小于等于6 小于等于5 小于等于5 3点到5点之间

        2
  •  1
  •   Pontus Gagge    15 年前

    如果表达式中只有常量,则应该可以避免 undecidability (我想!)。当您可以用+-*/表示例如关于整数的一般语句时,问题就会出现(请参阅 Peano arithmetic

    即使您停留在可判定的范围内,也不存在可以接受任意语句P(x)和Q(x)并计算与P(x)等价的语句R(x)的算法;Q(x)对于所有x,其中x的范围超过 任何 域(整数、字符串、矩阵、实数、复数、逻辑语句[哎呀,回到不可判定的领域!],…)。您需要特定于域的技巧才能达到目的,并严格限定 languages 其中P,Q和R是公式化的。有一些特定领域的软件产品,其中一个叫做Mathematica。。。

    试着回到基本点:你想解决什么问题?