FizzBuzz: Difference between revisions

575 bytes added ,  9 months ago
(→‎BQN: Added example using the choose (◶) combonator)
Line 6,216:
print(t[i%15] or i)
end</syntaxhighlight>
 
=== Metatable insertion ===
Sets any numeric key to its fizzbuzz value so that fizzbuzz[30] is "fizzbuzz"
<syntaxhighlight lang="lua">local mt = {
__newindex = (function (t, k, v)
if type(k) ~= "number" then rawset(t, k, v)
elseif 0 == (k % 15) then rawset(t, k, "fizzbuzz")
elseif 0 == (k % 5) then rawset(t, k, "fizz")
elseif 0 == (k % 3) then rawset(t, k, "buzz")
else rawset(t, k, k) end
return t[k]
end)
}
 
local fizzbuzz = {}
setmetatable(fizzbuzz, mt)
 
for i=1,100 do fizzbuzz[i] = i end
for i=1,100 do print(fizzbuzz[i]) end
</syntaxhighlight>
 
=== Fast Version without Modulo ===
2

edits