Я недавно написал программу под названием Setdown , которая выполняет операции Set из клима.
Он может выполнять операции над множествами, записывая определение, похожее на то, что вы написали бы в Makefile:
someUnion: "file-1.txt" \/ "file-2.txt"
someIntersection: "file-1.txt" /\ "file-2.txt"
someDifference: someUnion - someIntersection
Это довольно круто, и вы должны это проверить. Лично я не рекомендую использовать специальные команды, которые не были созданы для выполнения заданий. Он не будет работать хорошо, когда вам действительно нужно выполнить много операций над множествами или если у вас есть какие-либо операции над множествами, которые зависят друг от друга. Кроме того, setdown позволяет вам писать операции над множествами, которые зависят от других операций над множествами!
Во всяком случае, я думаю, что это довольно круто, и вы должны полностью это проверить.
Примечание : Я думаю, что Setdown намного лучше, чем comm просто потому, что Setdown не требует правильной сортировки ваших входных данных . Вместо этого Setdown отсортирует ваши входные данные и использует внешнюю сортировку. Так что он может обрабатывать большие файлы. Я считаю это большим преимуществом, потому что количество раз, которое я забыл сортировать файлы, которые я передал в comm, превышает количество.