November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy wykonywać na tablicach podstawowe operacje teoriomnogościowe (zbiorowe): sumę (unię), iloczyn (przecięcie), różnicę, iloczyn kartezjański i dopełnianie tablicy względem pewnego uniwersum.
W klasie Array przeciążone zostały operatory trzech podstawowych operacji zbiorowych:
# Suma (unia) [1,2,3] | [1,4,5] # => [1, 2, 3, 4, 5] # Iloczyn (przecięcie) [1,2,3] & [1,4,5] # => [1] # Różnica [1,2,3] - [1,4,5] # => [2, 3]
W klasie Set oprócz powyższych operatorów przeciążony jest także operator różnicy symetrycznej (^)[28]; w odniesieniu do tablic można go zrealizować za pomocą trzech pozostałych operatorów:
require 'set' a = [1,2,3] b = [3,4,5] a.to_set ^ b.to_set # => ...