先月流行した FizzBuzz 問題。
私もへっぽこながら挑戦してみたわけですが。 もう大体回答も出揃った頃だろうと思い、つらつらと検索しながら回答を見る。 プログラムの内容もさることながら、 いろんな言語で挑戦する人がいて、 そのバラエティ豊かなことが非常に面白かった。 awk や sed な人とか、cobol な人とか、fortran な人とか、 アセンブラな人までいたよ。 すごいなぁ、みんな(笑) Erlang とか haskell とかが散見されるのだが、流行ってるのん? 意外に Ruby が多くて、PHP が少ないとか。 言語の傾向からクラスタ分析できる?で、ふと思いついたのだが、 言語によって、使われる言葉や文言に傾向がある。 C だったら printf とか、java だったら System.out.print とか。 lisp だったら、ひょっとしたら lambda なんて多いかもしんない。 てことは、結果をクラスタ分析したら、 言語ごとにクラスタが分かれるんじゃね?と思いついた。 われながら良いアイディア。 早速、yahoo のまとめ検索を使ってみる。 「Fizz Buzz」の検索結果、上位100件をグループごとにまとめて表示 記事をまとめる度合い:強 …結果、全然ダメ(^^;; うーん、ある意味、優秀だな、yahoo。 print とか out とか、そういうのはノイズになることが多いので、 クラスタの要素としてはカウントされないのかも。 でも if とか else とか for なんかは出てるんだよね。 こっちこそ除外すべき単語じゃないかと思うんだが、 英語に弱いのか、日本語 yahoo。 老舗なvivsimo(英語)も試してみた。 これもある意味優秀で、 クラスタの要素が、読んでもそれなりに良くわかるようにできている。 クラスタの要素は、だいたい1単語で出てくるので、 「数字」とか「リスト」とか、 気持ちはわかるけど、それだけではどんなクラスタかわからない、というのが多い。 そういう意味では、ちゃんとしたフレーズで出てくるので、わかりやすい。 でも端的にあらわしているかと言えば、ちょっと冗長な感。 そして次に試してみたのが、これ。 clusty おお、これはなかなか良いぞ。 クラスタを代表する要素として、言語名がキレイに出てますねー。 Python、Ruby、Erlang、Gauche などなど。 Java や C な人は、きっとメジャーだから、 この言語で書いたよ!と宣言しないんだろうな。 だからクラスタの要素に出てこないんだろう。 クラスタ分析なんて、普段全然使わないんだけど、 こういう風に目的を持って使ってみると、結構面白いな。 Lisp脳途中、偶然見つけたのがこのページ。 「Lisp脳」の謎に迫る - Schemeプログラマの発想(Gaucheプログラミング) 手続き的な発想では、毎回特殊な処理を行いそれを繰り返す これを読んで爆笑。 FizzBuzz を解いたとき、 最初は perl で書いて、後から lisp で書いた。 振り返ってソースを見てみると、私の perl は lisp 脳である。 確かに、いつも仕事で書いているときでも、 データの加工の方に頭が行っていて、 「出力なんてどうにでもなる」って思ってるな。 あはははは。 「プリントせよ」という文を読んだからといって あるある。 最後に評価したものが返却値になるから、 敢えて return なんて使わない。 返却値は勝手に標準出力に出るし。 あれ?「評価」とかいう言葉が、既に lisp かい? 三歳じゃなかったけど、三つ子の魂って怖いねー。
by xiaoxia
| 2007-06-05 18:54
| コンピュータ関係
|
カテゴリ
以前の記事
2022年 12月 2021年 05月 2019年 12月 2018年 12月 2018年 05月 2018年 03月 2017年 03月 2017年 02月 2016年 08月 2016年 04月 more... 最新の記事
最新のトラックバック
ライフログ
今読んでる
その他のジャンル
記事ランキング
ブログジャンル
|
ファン申請 |
||