2011-02-03 18 views
0

これはリスト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)) 

iは、リスト1、内の項目iを返す再帰的な手順getItem(i,l)を作成することを変更ゼロより大きい整数

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

を実行し、それと参照してください? –

答えて

0

あなたはどの言語を使用していますか?ほとんどの言語では、数値を変数名として使用することはできません。また、括弧が2つありませんし、一貫して 'else if'を使用していません。

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) 
+0

ありがとうございました! –