# Swift's closure
# https://d...content-available-to-author-only...e.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html
DigitNames = {
0 => "Zero", 1 => "One", 2 => "Two", 3 => "Three", 4 => "Four",
5 => "Five", 6 => "Six", 7 => "Seven", 8 => "Eight", 9 => "Nine"
}
Numbers = [16, 58, 510]
strings = Numbers.map { |number|
output = ''
while number > 0
output = DigitNames[number % 10] + output
number /= 10
end
output
}
for s in strings
puts s
end
IyBTd2lmdCdzIGNsb3N1cmUKIyAgIGh0dHBzOi8vZC4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5jb20vbGlicmFyeS9pb3MvZG9jdW1lbnRhdGlvbi9Td2lmdC9Db25jZXB0dWFsL1N3aWZ0X1Byb2dyYW1taW5nX0xhbmd1YWdlL0Nsb3N1cmVzLmh0bWwKCgpEaWdpdE5hbWVzID0gewogICAgMCA9PiAiWmVybyIsIDEgPT4gIk9uZSIsIDIgPT4gIlR3byIsICAgMyA9PiAiVGhyZWUiLCA0ID0+ICJGb3VyIiwKICAgIDUgPT4gIkZpdmUiLCA2ID0+ICJTaXgiLCA3ID0+ICJTZXZlbiIsIDggPT4gIkVpZ2h0IiwgOSA9PiAiTmluZSIKfQpOdW1iZXJzID0gWzE2LCA1OCwgNTEwXQoKCnN0cmluZ3MgPSBOdW1iZXJzLm1hcCB7IHxudW1iZXJ8CiAgICBvdXRwdXQgPSAnJwogICAgd2hpbGUgbnVtYmVyID4gMAogICAgICAgIG91dHB1dCA9IERpZ2l0TmFtZXNbbnVtYmVyICUgMTBdICsgb3V0cHV0CiAgICAgICAgbnVtYmVyIC89IDEwCiAgICBlbmQKCiAgICBvdXRwdXQKfQoKCmZvciBzIGluIHN0cmluZ3MKICAgIHB1dHMgcwplbmQ=