在Swift中以函数方式计算两个数组的差

本周,我遇到了我的朋友MateuszMaćkowiak提出的挑战,以解决他创建的diff函数中的问题。 给定两个数组,他的目标是检索:

  • 通用元素:两个数组中的元素。
  • 插入的元素:不在第一个数组中但在第二个数组中的元素。
  • 删除的元素:不在第二个数组中但在第一个数组中的元素。

不过有一个陷阱。 元素不可比较,也不可等于 ,并且第一个数组的元素可能与第二个数组的类型不同。 但是,该函数将接收compare闭包,该闭包从第一个数组中获取一个元素,从第二个数组中获取一个元素,并告诉它们是否相等。

他向我展示了他的解决方案:

输入数据为:

 让a = [Int](0 ... 1000) 
令b = [Int](750 ... 1500)