# given two finite sequences of unique and hashable data,
# return needed opcodes and data needed for reconciliation
def set_reconcile(src_seq, dst_seq):
"Return required operations to mutate src_seq into dst_seq"
src_set= set(src_seq) # no-op if already of type set
dst_set= set(dst_seq) # ditto
for item in src_set - dst_set:
yield 'delete', item
for item in dst_set - src_set:
yield 'create', item
使用如下:
for opcode, datum in set_reconcile(machine1_stuff, machine2_stuff):
if opcode == 'create':
# act accordingly
elif opcode == 'delete':
# likewise
else:
raise RuntimeError, 'unexpected opcode'
Synchronizing Keyserver项目在OCaml中实现有效的集合协调。
这段代码超出了我的理解范围,因此在本网站的代码样本申请许可证时都会涉及到这段代码。
使用如下:
不能使用GPL通常是一个抽象的问题;也就是说,如果这是您遇到问题的许可证。因此,如果您创建一个小型的GPL应用程序(在GPL下发布),您可以从非GPL应用程序调用它。为什么要重新发明轮子?
尤其是如果您可以使用已经存在的python脚本:为什么不利用它呢?当然,如果不能公开元素重新整合算法,情况就不同了。
相关问题 更多 >
编程相关推荐