这是一个返回列表1中最后一项的过程:
proc last (1)
if (isEmpty(1))
error('Oops. Empty list in procedure last.')
elseif (is empty(rest1))
return (first(1)
else return last(rest(1))
修改它以创建一个递归过程getItem(i,l)
,它返回列表1中的项i
,其中i
是一个大于零的整数。
proc getItem(i,1)
if (isEmpty(1))
error('Opps. Empty list in procedure last.')
else if (isEmpty(getItem,i1)
else if i > 0
return item(i,1)
是正确的吗?
答案 0 :(得分:1)
为了使它以递归方式工作,最后一行需要具有相同的函数名称。
除此之外,你需要减少我....否则你不会动...
应该是这样的:
proc getItem(i,1)
if (isEmpty(1))
error('Opps. Empty list in procedure last.')
else if (i > 0)
return getItem(i-1,1)
else return first(1)
答案 1 :(得分:0)
您使用的是哪种语言?在大多数语言中,您不能将数字用作变量名称。此外,你错过了几个括号,而且你没有使用'else if'。