FizzBuzz: Difference between revisions
Content added Content deleted
Rumwantscake (talk | contribs) (→BQN: Added example using the choose (◶) combonator) |
Rumwantscake (talk | contribs) (→Lua) |
||
Line 6,216: | Line 6,216: | ||
print(t[i%15] or i) |
print(t[i%15] or i) |
||
end</syntaxhighlight> |
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 === |
=== Fast Version without Modulo === |