相关疑难解决方法(0)

仅使用递增,循环,赋值,零的减法运算

我正在尝试使用以下方法建立减法,加法,除法,乘法和其他操作:

  1. incr(x) - 一旦调用此函数,它将x + 1分配给x
  2. assign(x,y) - 此函数将y的值赋给x(x = y)
  3. 零(x) - 此函数将0分配给x(x = 0)
  4. 循环X {} - 括号内的操作将执行X次

使用以下规则,可以直接实现这样的添加(添加):

ADD (x, y) {
 loop X {
   y = incr (y)
 }
return y
}
Run Code Online (Sandbox Code Playgroud)

但是,我正在努力实现减法.我认为所有其他所需的操作都可以使用减法完成.

任何提示都将非常感激.

math logic lambda-calculus subtraction addition

10
推荐指数
1
解决办法
1767
查看次数

仅使用递增,循环,赋值,零的关系运算

这是一个后续问题:仅使用递增,循环,赋值,零的减法运算

我们只允许使用以下操作:

  1. incr(x) - 一旦调用此函数,它将x + 1分配给x
  2. assign(x,y) - 此函数将y的值赋给x(x = y)
  3. 零(x) - 此函数将0分配给x(x = 0)
  4. 循环X {} - 括号内的操作将执行X次

例如,添加可以如下实现:

add(x, y) {
    loop x
        { y = incr(y) }
    return y
}
Run Code Online (Sandbox Code Playgroud)

如何使用这四个操作实现关系运算符?关系操作是:

  1. eq(x,y) - x是否等于y?
  2. lt(x,y) - x小于y吗?
  3. gt(x,y) - x是否大于y?

我们也有他们的对立面:

  1. ne(x,y) - x不等于y吗?
  2. gte(x,y) - x是否大于或等于y?
  3. lte(x,y) - x是否小于或等于y?

任何帮助将不胜感激.

algorithm math logic equality lambda-calculus

6
推荐指数
1
解决办法
909
查看次数