0

例如,我们需要实现function Set addToSet(Stack, Object):它接受一个Stack和一些可以压入堆栈的对象;输入对象应该被推入输入堆栈;我们需要它返回 a 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 回答