FizzBuzz
いやぁ、いろんな方法があるねぇ。もう完全にネタだけど。ということで Perl 版。 use strict; use warnings; print [$_, 'Fizz', 'Buzz', 'FizzBuzz']->[($_ % 3 == 0) * 2 + ($_ % 5 == 0)], "\n" for 1..100; 昨日の MySQL 版と同じアプローチだけど、こ…
そろそろネタ切れの予感。 seq はなんとかならんものかな。 CREATE TEMPORARY TABLE seq ( i INT AUTO_INCREMENT PRIMARY KEY ); INSERT INTO seq VALUES (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),…
だからしつこいって。 class Integer def is_multiple_of?(*ns) ns.all? {|n| self % n == 0} end end (1..100).each do |i| if i.is_multiple_of? 3, 5 puts 'FizzBuzz' elsif i.is_multiple_of? 3 puts 'Fizz' elsif i.is_multiple_of? 5 puts 'Buzz' else…
C++ なら剰余演算どころか if も for も一切使わずに FizzBuzz が書けるとかそういうネタ。てか、まだ FizzBuzz ネタを引っ張るか。 ちなみに、プログラム中には剰余演算があるが、C++ の仕様上、これはコンパイルタイムに計算されるはずなので、実行時には…
あえて Common Lisp の do マクロを避けて、自分で defmacro してみる。ちょっとしたリハビリ。つうかまだひっ ぱるのか。 Emacs Lisp で書いたけど、Common Lisp でもそのまま動くだろう。たぶん。 (defmacro from-to (var from to &rest body) `(let ((,va…
ref:http://www.kt.rim.or.jp/~kbk/zakkicho/07/zakkicho0705.html#D20070510-2 自分ならこう書く。 main = mapM_ (putStrLn.toWord) [1..100] toWord a | mod a 5 == 0 && mod a 3 == 0 = "FizzBuzz" | mod a 3 == 0 = "Fizz" | mod a 5 == 0 = "Buzz" | ot…
なんかはやりすぎだと思った。 じゃ、ま、こんなのでも。 from itertools import izip, repeat def chain(iterable): for it in iter(iterable): for i in iter(it): yield i def take(n, iterable): it = iter(iterable) for i in xrange(n): yield it.next…