一部で Fizz-Buzz 問題がはやってるみたいで。私が anarchy golf の FizzBuzz 用に JavaScript で書いたのは以下の 58 バイト。ここにいたるまでには 2 分どころではない時間がかかってるけど。 for(i=0;i++<100;)print((i%3?"":"Fizz")+(i%5?"":"Buzz")||i) 今のところ JavaScript の最短は 56 バイト。どうすれば縮められるのかさっぱり思いつかない。 ちなみに、anarchy golf をやるときには大体以下のような変換をしていた。 変換前 変換後 差
この原稿の最新版について この原稿に加筆した最新版が書籍「プログラミングGauche」に収録されています。 引用や紹介をされる方はなるべく書籍収録版を参照してください。 他の言語のプログラマがSchemeプログラムを書くとき、 どうしても発想が手続き的(procedural)になりがちです。 LispプログラマやSchemeプログラマの発想は手続き的な発想とはどうも違うらしい、 ということは分かるのですが、具体的に何が違うのでしょうか? ここではこの謎に迫ってみましょう。 実例 例えばこんな例題があります。 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 どうしてプログラマに・・・プログラムが書けないのか? (原題: Why
1から100までの整数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 ただし、剰余(Rubyでいう % 演算子や modulo)を使うな。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く