【发布时间】:2012-10-22 22:44:14
【问题描述】:
给定以下结构:
class G {
Node[] nodes;
}
class Node {
Node neighbour;
}
深拷贝操作可以定义为:
function G copy (G g) {
G r = new G();
Map isom = new Map();
for (Node node in g.nodes) {
Node c = isom.get(node);
if (c == null) {
c = copy(node, isom);
isom.put(node, c);
}
r.nodes.add(c);
}
return r;
}
function Node copy(Node n, Map isom) {
Node r = isom.get(n);
if (r == null) {
r = new Node();
isom.put(n, r);
r.neighbour = copy(n.neighbour);
}
return r;
}
我的问题是如何设计一个函数copy(Node n, Map isom),使其不会以函数式编程风格改变参数isom。
【问题讨论】:
-
在纯FP中,你不复制,你分享。
标签: functional-programming purely-functional