関数から複数の値を返すことができるかどうかに興味があります。たとえば、拡張ユークリッド アルゴリズムなどの関数を考えてみましょう。基本的なステップは、この Input is 非負の整数 a および b によって記述されます。出力は、 のようなトリプレット (d、i、j) ですd=gcd(a,b)=i*a+j*b
。私の質問の目標を明確にするために、短い再帰コードを書きます。
if (b==0) return (a,1,0)
q=a mod b;
r を次のようにします。 a=r*b+q;
(d,k,l)=extendedeuclidean(b,q);
return (d,l,k-l*r);
トリプレットを返すにはどうすればよいですか?