image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2007年9月10日 | トップページ | 2007年9月12日 »

2007年9月11日

2007-09-11

FizzBuzz 問題を xfy/xvcd で

Buzz
http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
 どうしてプログラマに・・・プログラムが書けないのか?
にある FizzBuzz 問題を xfy/xvcd で書いてみた。

FizzBuzz 問題とは

1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

xfy で buzz.xml を開けばよい。画面一番上の数値は編集可能だ。リアルタイムに結果が更新される。

$ cat buzz.xml
<?xml version="1.0" encoding="UTF-8" ?>
<?com.xfy vocabulary-connection href="buzz.xvcd" ?>
<sample:item xmlns:sample="http://xmlns.xfy.com/sample/buzz">100</sample:item>

$ cat buzz.xvcd
<?xml version="1.0" encoding="UTF-8"?>
<xvcd:xvcd
  version="1.0"
  xmlns:xvcd="http://xmlns.xfy.com/xvcd"
  xmlns:sample="http://xmlns.xfy.com/sample/buzz"
  xmlns="http://www.w3.org/1999/xhtml">

<!--
  See - http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
        どうしてプログラマに・・・プログラムが書けないのか?

      - http://d.hatena.ne.jp/mhrs/20070515/p1
        MORIYAMA Hiroshi's Diary - XSLTでFizz-Buzz
-->
<!--
      2007-09-11 katoy
      此処のコードだと 140 で stackoverflow になる...
      stackoverflow にならない方法は?
-->

<xvcd:vocabulary name="pyr" match="sample:item" call-template="root"/>

<xvcd:template name="root">
  <html>
    <head><title>BUZZ</title></head>
    <body>
      Input Number?:<xvcd:text-of select="./text()" filler="0"/>
      <pre>
      <xvcd:call-template name="buzz">
        <xvcd:with-param name="n" select="./text()"/>
      </xvcd:call-template>
      </pre>
    </body>
  </html>
</xvcd:template>

<!-- 再帰処理のルーチン  -->
<xvcd:template name="buzz">
  <xvcd:param name="n" />

  <xvcd:choose>
    <xvcd:when test="$n &gt; 1">
      <xvcd:call-template name="buzz">
        <xvcd:with-param name="n" select="$n - 1"/>
      </xvcd:call-template>
    </xvcd:when>
  </xvcd:choose>

  <xvcd:choose>
    <xvcd:when test="$n mod 15 = 0">
      <xvcd:value-of select="'FizzBuzz'"/>
    </xvcd:when>
    <xvcd:when test="$n mod 3 = 0">
      <xvcd:value-of select="'Fizz'"/>
    </xvcd:when>
    <xvcd:when test="$n mod 5 = 0">
      <xvcd:value-of select="'Buzz'"/>
    </xvcd:when>
    <xvcd:otherwise>
      <xvcd:value-of select="$n"/>
    </xvcd:otherwise>
  </xvcd:choose>
  <br/>
</xvcd:template>

</xvcd:xvcd>

ピックアップ: プログラマブルCSS「Moonfall」, マイクロソフトが翻訳サービスを開始, etc...

- http://japan.cnet.com/interview/tech/story/0,2000055961,20356052,00.htm
> > iPod touch、厚さ8mmを実現できた理由--アップルStan Ng氏に聞く:インタビュー - CNET Japan

- http://www.moongift.jp/2007/09/moonfall/
> > MOONGIFT: » プログラマブルCSS「Moonfall」:オープンソースを毎日紹介

> ...
現状のCSSは言わば各数値、文字列がハードコーディングされた状態だ。柔軟なデザイン変更に対応するにはやはり変数化が便利だろう。
MoonfallではLuaと言う言語が使われている。これはAdobe Lightroomでも使われている言語
> ...

- http://labs.unoh.net/2007/09/css_1.html
> > ウノウラボ Unoh Labs: 「サーバサイドCSS」という選択

- http://blogs.itmedia.co.jp/mm21/2007/09/post_4306.html
> > 「初音ミク」に見る、音声処理市場の新展開 - 永井孝尚のMM21 [ITmedia オルタナティブ・ブログ]

- http://labs.cybozu.co.jp/blog/akky/archives/2007/09/windows-live-translator-released.html
> > 秋元@サイボウズラボ・プログラマー・ブログ: マイクロソフトが翻訳サービスを開始。英文和訳を他社と比べてみた

- http://www.100shiki.com/archives/2007/09/bookswim.html
> > 料金定額で書籍をレンタルできる『BookSwim』 | 100SHIKI.COM

- http://blog.creamu.com/mt/2007/09/csscss_for_bar_graphs.html
> > CSSで棒グラフをデザインする方法『CSS For Bar Graphs』 | CREAMU

- http://blog.creamu.com/mt/2007/09/mac_os_x.html
> > プレゼンで視聴者の心を確実につかむ『Mac OS X ズーム機能』 | CREAMU

- http://www.milkstand.net/fsgarage/archives/001082.html
> > F's Garage:簡単に画面キャプチャをアップできるgyazoにmovatwitterが対応

- http://labs.cybozu.co.jp/blog/kazuho/archives/2007/09/mysql_async.php
> > Kazuho@Cybozu Labs: Perl から MySQL に非同期アクセスする方法

- http://www.atmarkit.co.jp/fwcr/special/silverlight/silverlight_1.html
> > 【特集】Silverlightは次世代のJavaScriptフレームワーク?(1/3) − @IT

- http://chalow.net/2007-09-10-3.html
> > [を] 「文で検索」をリニューアル

- http://blogs.itmedia.co.jp/musasabi/2007/09/os_f652.html
> > ブラウザがOSくらいに重要に - むささびの視線 [ITmedia オルタナティブ・ブログ]

« 2007年9月10日 | トップページ | 2007年9月12日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク