例如,我们需要实现function Set addToSet(Stack, Object)
:它接受一个Stack
和一些可以被推入堆栈的对象;输入对象应该被推入输入堆栈;我们需要它返回一个Set
,它包含带有新对象的输入堆栈的所有元素。如果我们将新对象推入堆栈,我们就违反了functional programming的原则。出于某种原因,我们不能在调用此函数之前或之后将新对象推入堆栈(即,在函数外推送)。我们该怎么做?
我的猜测解决方案是首先将输入堆栈复制到新堆栈,然后修改新堆栈,最后将结果Set
与新堆栈一起返回。你有什么看法?
答案 0 :(得分:1)
怎么样:
function Stack pushToStack(Stack, Object)
function Set stackToSet(Stack)
stackToSet(pushToStack(Stack,Object))
没有副作用。