RosettaCodeData/Task/Nested-templated-data/Crystal/nested-templated-data.crystal

19 lines
482 B
Plaintext

def with_payload(template, payload, used = nil)
template.map do |item|
if item.is_a? Enumerable
with_payload(item, payload, used)
else
used << item
payload[item]
end
end
end
p = {"Payload#0", "Payload#1", "Payload#2", "Payload#3", "Payload#4", "Payload#5", "Payload#6"}
t = { { {1, 2}, {3, 4, 1}, 5}}
used = Set(Int32).new
puts with_payload(t, p, used)
unused = Set(Int32).new((0..6).to_a) - used
puts "Unused indices: #{unused}"