difference<A> function

ImmutableList<A> Function(ImmutableList<A>) Function(ImmutableList<A>) difference<A>(
  1. Eq<A> eq
)

Computes the difference between two ImmutableLists.

Example:

final list1 = ImmutableList<int>([1, 2, 3]);
final list2 = ImmutableList<int>([3, 4, 5]);
final differenceList = difference(Eq.fromDefault<int>())(list1)(list2);
print(differenceList.items);  // Outputs: (1, 2)

Implementation

ImmutableList<A> Function(ImmutableList<A>) Function(ImmutableList<A>)
    difference<A>(Eq<A> eq) {
  return (ImmutableList<A> list1) {
    return (ImmutableList<A> list2) {
      final itemsInList2 = list2.items.toSet();
      return ImmutableList(list1.items
          .where(
              (item1) => !itemsInList2.any((item2) => eq.equals(item1, item2)))
          .toList());
    };
  };
}