Hatena::ブログ(Diary)

まめめも このページをアンテナに追加 RSSフィード

2008-09-10

[] Grass で quine

この記事は Quine Advent Calender 2014 の 102 日目になりました。

ref: http://d.hatena.ne.jp/shinichiro_h/20080910#1220988953

やろうやろうと思って放置してたら先にやられてしまったー。一念発起して完成させて、がんばって縮めて見ました。

$ time ruby grass.rb quine.www > quine2.www

real    0m21.830s
user    0m20.440s
sys     0m1.390s

$ diff quine.www quine2.www

$ wc -c quine.www
9787 quine.www

でも試しに golf 鯖に投稿してみたら、over 10K って言われた。なぜー。

あとは菊さんの 100B が楽しみですね。


以下どーんとソース。

どーん。

wWwwwwWWWwvwwWWwWWWwWWWWWWWwvwwWWwWWWwvwWWWwwwwwwWWWWwWWWwWWWWWwwwwWwwWWwWWWWW
WWWWWwvwWWwwwwvwvwWWWWWWWwwvwWWWWWwwwwwwvwWwwwwwWwwwwWwwwwvwWWWWwWWWWWwWWWWWWw
WWWWWWwvwWWWWwWWWWWwWWWwvwWwwwwwWwwwwwwWwwwwwwwWWWWWwwwwwwwwwvwWWWWwWWWWwwwwww
wWWWwvwwWWWwwwwwwWWWWWWWwWWWWWwwwwWWWWWWWWWWWWwWWWWWWWWWWWWWWWwvwWWwwwwwWWwWWW
WwwwwwwwwwwWWwWWWWWWwwwWWwvwWWWWWWWWwWWWwwWWWWWWWwwwvwwwvwwwWWWWwwwWwwwWwwwWWW
WWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwv
wwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwW
WWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWww
wWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwW
wwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWw
wwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWW
WwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwww
WWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWww
wWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWw
wwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWw
wwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWW
WwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWWwv
wwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWW
WWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWww
wWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWw
wwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWww
wWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWW
wvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwww
WWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWww
wWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwww
WwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWww
wWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWW
WwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvww
wWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWw
wwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwww
WwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWW
WWWwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWW
wvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvww
wWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwW
WWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWW
WwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWw
wwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwww
WWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWW
WWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvw
wwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWW
wwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwww
WwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWww
wWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWw
wwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwW
WWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWW
wvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvw
wwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWW
WWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwWWWW
wwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWw
wwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWww
wWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWw
vwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwW
WWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwww
WwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwW
wwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWW
WwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvww
wWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWW
WWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwW
wwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWw
wwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWW
WwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwww
WWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWW
WWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWww
wWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWw
wwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWw
wwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwW
WWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWW
wvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvw
wwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWW
WWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwW
wwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwW
wwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwww
WWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWW
WWwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWw
vwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWW
WWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwww
WwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwW
wwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwww
WWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWW
WwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvww
wWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwW
WWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwww
WwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWww
wWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWw
wwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWW
wvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwW
WWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWww
wWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwW
wwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwww
WWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWw
vwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWW
WWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwW
wwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWww
wWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWW
wvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwW
WWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwww
WwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWw
wwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWW
WwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwv
wwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwW
WWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWW
wwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWw
wwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwww
WWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWW
WwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwv
wwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwww
WWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWw
wwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWww
wWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwW
WWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWW
wvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwww
WWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWW
WwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWw
wwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwww
WWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWw
vwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwww
WWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWww
wWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWwvwwwWWWWwwwWwwwW
wwwWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwW
WWWWwvwwwWWWWwwwWwwwWwwwWWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWW
WWwvwwwWWWWwwwWwwwWwwwWWWWWwvwwwWWWWwwwWwwwWwwwWWWWWWwvWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw

2008-09-06

[] Hello, world! 496B

ちまちま削って 500B 突破! 相変わらずアルゴリズムは rst76 さんのまま。

wwWWwWWWwvWwwwWWwWWWwWWWWwWWWWWwvwWwwwwwwwwwwWWwWWWWwWWWWWWWwvWWWWWWWwwWWwWWWWW
WWWwWWWWWWWWWWWWwwWWWWWWWWwWWWWWWWwWWWWWWwwwwwWWWWWWWWWWwvwWWWWWWWWWWWWWWwvWwww
wwWWwwwwWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWwWWWWWwvwWWWWWWWWWWWWWWWWWWWWWwvwW
WWWWWWWWWWWWWWWWWWWWWWWwvwWWwwwwwwwwwwWWWwwwwwwwwwWWWWwwwwwwwwwwwwwwwwWWWWWwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWwwwwvwWWWWwwwwwWWWWwWWWWWwwwWWWWWWwwwwwwwwwwWWW
WWWWwwwwwwwwwwwwwwwwwwwwvWWWwwwwwwwwwwwwwWWWWWwwwwwwwwwWWWWWwWWWWWWwwwwwwwwwWWW
WWWWwWWWWWWWwWWWWWWWww

ネタバレだけど、よく考えたらちょっと見たくらいじゃわからないはずなので、そのまま公開してみる。

あと菊さんのやつがエレガントでかっこいい。

2008-09-02

[][] Yet Another Grass 処理系

http://github.com/mame/grass-misc/tree/master/

こないだ作った Grass インタプリタyagi.rb (Yet Another Grass Interpreter) という名前にしておきました。

yagc.rbGrass コンパイラ (というほど大したことしないけど) で、GrassプログラムRuby に翻訳するツール。

$ ./yagc.rb hello.www > hello.rb

$ ruby19 hello.rb; echo
Hello, world!

初めて Proc#curry を使った。

yagd.rb は逆コンパイラで、yagc.rb で生成した Ruby プログラムGrass に戻すツール。

$ ./yagd.rb hello.rb > hello2.www

$ ./yagi.rb hello2.www; echo
Hello, world!

$ diff hello.www hello2.www

とりあえずこのくらい。まじめにやれば 500B は切れる。はず。

$ ruby19 -e 'p File.read("hello.www").gsub(/[^wWv]/m, "").size'
519

追記

hello.www のネタばれ。





実は計算方法自体は rst76 さんのコードを拝借してます。

wwWWwWWWwvwWWwWwwwwwwvWWwwwwWWWwWWWWwWWWWWwWWWWWWwWWWWWWWwWWWWWWWwWWWwvwWWWWWWW
wvWwwWWWWWWWWWWwWWWWWWWWWWWWWWWwwWWWWwWWWWWWWWWwWWWWWWWWWwwwwwWWWWWWWWWWWWwvwWW
WWWWWWWWWWWWWWwvWwwwwwWWwwwwWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWwWWWWWwvwWWWWWW
WWWWWWWWWWWWWWWWWwvWwwwwwWWwwwvwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvwWWwwwwwwwwwwwwW
WWwwwwwwwwwwwWWWWwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWwwwWWWWWWwWWWWWWWwwwww
vwWWWwwwwWWWWwwWWWWWwwwwwwwwwwwWWWWWWwwwwwwwwwwwwwwwwwwwwwvWWWwwwwwwwwwwwwwwwWW
WWwwwwwwWWWWWwwwwwwwwwwWWWWWWwWWWWWWwWWWWWWww

ポイントは

  • id を定義しない (id を定義して id Out するより、出力の直前でイータ展開 (λx. Out x) を定義した方が安上がり)
  • λx. Out x を用意した直後で出力関数を定義する (Out や値が近くなる)

です。あとは細かい最適化