FizzBuzz

OGNL で FizzBuzz

今度は Seasar2 の dicon ファイルでも利用されている式言語, OGNL でやってみたよ. #fizzbuzz = :[ @System@out.println( #this % 15 == 0 ? 'FizzBuzz' : #this % 3 == 0 ? 'Fizz' : #this % 5 == 0 ? 'Buzz' : #this), #this < 100 ? #fizzbuzz(#this +…

SQL で FizzBuzz (H2 編)

やるまでもないとかつまらないとかって書いたけど,せっかくカテゴリも作ったことなので書いておくテスト. create table digit (n integer); insert into digit (n) values (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); select case when mod(n, 15)…

Nice で FizzBuzz

Nice という Java ベースのスクリプト風 (?) 言語でやってみました. void main(String[] args) { for(int i : 1..100) { print(i, i % 3, i % 5); } } void print(int i, int m3, int m5); print(i, 0, 0) { println("FizzBuzz"); } print(i, 0, m5) { pri…

SQL で FizzBuzz (Oracle 編)

「Oracle 編」と書いてはみたものの,Oracle 以外はやりそうもない予感. 実は最初,H2 Database Engine でやろうと思ったのだけど,H2 って再帰問い合わせはまだサポートしてないのね. ってことになると,数列を作るのに 10 行のテーブルまたはビューを用…

続々 Prolog で FizzBuzz

田辺さんからコメントいただきました. 触発されて、modを使用しない版を書いてみました。いかがでしょうか。 「いかがでしょうか」と言われてもですね,そんなことされたら「剰余を求めるのに 10 秒かかる」という環境を前提に,それでも剰余を使って並行論…

続 Prolog で FizzBuzz

コメントでご指摘いただいたとおり,前に書いた Prlog 版 FizzBuzz は最初の (っていうか唯一の) 解を見つけた後,別の解を探しに行くと無限ループというかスタックオーバーフローになります. 心より恥じる.全解探索するつもりが毛頭なかったのですっかり…

Prolog で FizzBuzz

http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm via http://d.hatena.ne.jp/yad-EL/20070508/p1 Prolog でやってみた. fizzbuzz(N, L) :- fizzbuzz(N, L, []). fizzbuzz(0, L, L). fizzbuzz(N, L, D) :- sub(N, V), N1 is N -…