Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Recursion 基元递归的定义是否依赖于比较函数和先例函数?_Recursion - Fatal编程技术网

Recursion 基元递归的定义是否依赖于比较函数和先例函数?

Recursion 基元递归的定义是否依赖于比较函数和先例函数?,recursion,Recursion,原语递归定义如下: Given functions h,mapping from N+2 integers to 1 integer; and function g, mapping from N integers to 1 integer. we can define a new function f recursively. f(0,y)=g(y) f(x+1,y)=h(x,f(x,y),y) 如果我们有一台机器来执行函数f,那么机器是否应该知道输入参数是否为0?这是否意味着需要比较功能

原语递归定义如下:

Given functions h,mapping from N+2 integers to 1 integer; and function g, mapping from N integers 
to 1 integer. we can define a new function f recursively.
f(0,y)=g(y)
f(x+1,y)=h(x,f(x,y),y)
如果我们有一台机器来执行函数f,那么机器是否应该知道输入参数是否为0?这是否意味着需要比较功能

如果参数不是0,机器应该知道如何从(x+1)中获取x吗?这是否意味着需要先例功能


然而,从这一点来看,比较函数和先例函数都是使用原始递归定义的。为什么会发生这种情况,我是否遗漏了一些要点?

您提供的引用是一个正式的定义。它没有提到实现或运行实现的机器。那么,如果没有前置函数或减法函数,我们怎么能从x+1得到x呢?当我们写f(x+1,y)=h(x,f(x,y),y时,我们是隐式使用了先例还是减法?是的,这个定义建立在,包括后继函数的存在。对于除零以外的每个数字,可以基于后继函数正式定义前置操作。