5 WTFs in 6 LOC
dot wingrove
@notthepoint
(1..100).each do |num|
print "Fizz" if num % 3 == 0
print "Buzz" if num % 5 == 0
print num unless (num % 5 == 0 || num % 3 == 0)
print "\n"
end
a=b=c=(1..100).each do |num|
print num, ?\r,
("Fizz" unless (a = !a)..(a = !a)),
("Buzz" unless (b = !b)...!((c = !c)..(c = !c))),
?\n
end
<= assignment wut?
a = (1..2).each do |num|
puts a.inspect
end
nil
nil
N.B. !nil == true
a=b=c=nil
(1..100).each do |num|
print num, ?\r,
("Fizz" unless (a = !a)..(a = !a)),
("Buzz" unless (b = !b)...!((c = !c) .. (c = !c))),
?\n
end
<= \ruh \roh
> ?a
=> "a"
print "I love\n", "Perl", "\r", "Ruby", "\n"
print "I hate\n", "Javascript", "\r", nil , "\n"
I love
Ruby
I hate
Javascript
a=b=c=(1..100).each do |num|
print num, ?\r,
("Fizz" unless (a = !a)..(a = !a)),
("Buzz" unless (b = !b)...!((c = !c)..(c = !c))),
?\n
end
arr = ['one', 'START', 'two', 'STOP', 'three']
arr.each do |w|
puts w if ((w == 'START')..(w == 'STOP'))
end
START
two
STOP
arr = ['one', 'START', 'two', 'STOP', 'three']
arr.each do |w|
puts w if ((w == 'START')..(w == 'STOP'))
end
START
two
STOP
arr = ['one', 'START', 'two', 'STOP', 'three']
arr.each do |w|
puts w if ((w == 'START')..(w == 'STOP'))
end
START
two
STOP
arr = ['one', 'START', 'two', 'STOP', 'three']
arr.each do |w|
puts w if ((w == 'START')..(w == 'STOP'))
end
START
two
STOP
arr = ['one', 'START', 'two', 'STOP', 'three']
arr.each do |w|
puts w if ((w == 'START')..(w == 'STOP'))
end
START
two
STOP
arr = ['one', 'TOGGLE', 'two', 'TOGGLE', 'three']
arr.each do |w|
puts w if (w == 'TOGGLE' ... w == 'TOGGLE')
end
TOGGLE
two
TOGGLE
arr = ['one', 'TOGGLE', 'two', 'TOGGLE', 'three']
arr.each do |w|
puts w if (w == 'TOGGLE' ... w == 'TOGGLE')
end
TOGGLE
two
TOGGLE
arr = ['one', 'TOGGLE', 'two', 'TOGGLE', 'three']
arr.each do |w|
puts w if (w == 'TOGGLE' ... w == 'TOGGLE')
end
TOGGLE
two
TOGGLE
arr = ['one', 'TOGGLE', 'two', 'TOGGLE', 'three']
arr.each do |w|
puts w if (w == 'TOGGLE' ... w == 'TOGGLE')
end
TOGGLE
two
TOGGLE
arr = ['one', 'TOGGLE', 'two', 'TOGGLE', 'three']
arr.each do |w|
puts w if (w == 'TOGGLE' ... w == 'TOGGLE')
end
TOGGLE
two
TOGGLE
a = nil
(1..9).each do |n|
print "#{n} ",
"#{a.inspect} ",
("Fizz" unless (a = !a) .. (a = !a)),
"\n"
end
1 nil
2 false
3 true Fizz
4 false
5 false
6 true Fizz
7 false
8 false
9 true Fizz
a = nil
(1..9).each do |n|
print "#{n} ",
"#{a.inspect} ",
("Fizz" unless (a = !a) .. (a = !a)),
"\n"
end
1 nil
2 false
3 true Fizz
4 false
5 false
6 true Fizz
7 false
8 false
9 true Fizz
a = nil
(1..9).each do |n|
print "#{n} ",
"#{a.inspect} ",
("Fizz" unless (a = !a) .. (a = !a)),
"\n"
end
1 nil
2 false
3 true Fizz
4 false
5 false
6 true Fizz
7 false
8 false
9 true Fizz
a=b=c=(1..100).each do |num|
print num, ?\r,
("Fizz" unless (a = !a) .. (a = !a)),
("Buzz" unless (b = !b) ... !((c = !c) .. (c = !c))),
?\n
end
num | b | flipflop1 state | c | flipflop2 state | buzz ? |
---|---|---|---|---|---|
1 | nil | open | nil | - | |
2 | true | open | nil => false | open | |
3 | true | open | false => true | close, rtn true | |
4 | true | close, rtn true | true => false | close | |
5 | true => false | close | false | - | buzz! |
6 | false => true | open | false | - | |
7 | true | open | false => false | open | |
8 | true | open | false => true | close, rtn true | |
9 | true | close, rtn true | true => false |
close |
|
10 | true => false | close | true => false | close | buzz! |
("Buzz" unless (b = !b) ... !((c = !c) .. (c = !c)))
@notthepoint
https://bugs.ruby-lang.org/issues/5400
https://juliansimioni.com/blog/deconstructing-fizz-buzz-with-flip-flops-in-ruby/
notthepoint.io
5 WTFs in 6 LOC dot wingrove @notthepoint
5 WTFs in 6 LOC
By dorothyjane
5 WTFs in 6 LOC
- 1,656