22 lines
307 B
Crystal
22 lines
307 B
Crystal
class Array(T)
|
|
def zip_with(other : Array(R), &block : T, R -> U) forall R, U
|
|
dest = [] of U
|
|
zip(other) do |l, r|
|
|
dest << yield l, r
|
|
end
|
|
dest
|
|
end
|
|
|
|
def union
|
|
reduce(T.new) do |l, r|
|
|
l | r
|
|
end
|
|
end
|
|
|
|
def intersect
|
|
reduce do |l, r|
|
|
l & r
|
|
end
|
|
end
|
|
end
|