0

たとえば、実装する必要があります。スタックにプッシュできるオブジェクトをfunction Set addToSet(Stack, Object)受け入れます。Stack入力オブジェクトは入力スタックにプッシュする必要があります。Set新しいオブジェクトを含む入力スタックのすべての要素を含むを返すために必要です。新しいオブジェクトをスタックにプッシュすると、関数型プログラミングの原則に違反します。何らかの理由で、この関数を呼び出す前または後に新しいオブジェクトをスタックにプッシュすることはできません (つまり、関数の外側にプッシュする)。どうすればいいですか?

私の推測では、最初に入力スタックを新しいスタックにコピーしてから、新しいスタックを変更し、最後にSet新しいスタックと一緒に結果を返すことです。あなたの意見は何ですか?

4

1 に答える 1

1

どうですか:

function Stack pushToStack(Stack, Object)
function Set stackToSet(Stack)
stackToSet(pushToStack(Stack,Object))

もう副作用はありません。

于 2012-10-21T15:34:38.783 に答える