24 lines
712 B
Plaintext
24 lines
712 B
Plaintext
import "./set" for Set
|
|
import "./sort" for Sort
|
|
|
|
var withPayload // recursive function
|
|
withPayload = Fn.new { |template, payload, used|
|
|
return template.map { |item|
|
|
if (item is List) {
|
|
return withPayload.call(item, payload, used)
|
|
} else {
|
|
used.add(item)
|
|
return "'%(payload[item])'"
|
|
}
|
|
}.toList
|
|
}
|
|
|
|
var p = ["Payload#0", "Payload#1", "Payload#2", "Payload#3", "Payload#4", "Payload#5", "Payload#6"]
|
|
var t = [[[1, 2], [3, 4, 1], 5]]
|
|
var used = []
|
|
System.print(withPayload.call(t, p, used))
|
|
System.print()
|
|
var unused = Set.new(0..6).except(Set.new(used)).toList
|
|
Sort.insertion(unused)
|
|
System.print("The unused payloads have indices of %(unused).")
|