2010-07-06
*1278419692*Haskell Quizに関して追記
a href='http://blog.hackers-cafe.net/2010/06/haskell-quiz.html'Hacker's Cafe Blog: Haskell Quiz/a
($)を再定義していないって書いていなかったのは、素でうっかりと…。なんというか「一意に決まる」って言わない方がよかったかなぁ。こういうケアレスミスで余詰めが発生してしまうとか僕にはありがちすぎる。
前半がまるごとダミーだなんてことはなくて、あとそんな演算子が再定義できる言語ならなんでもできるようなことだったらクイズになんかしなくて、一応僕としてはHaskellのHaskellらしい機能を使っているつもりだったりするわけだ。
あと、この問題を聞いて id:n_shuyo さんに「PHPとかだと簡単に作れそうですね」とコメントされたのが一般論としては結構すばらしい洞察かと思う。PHPやPerlやJavaScriptで「数学的に考えると変な挙動」を簡単に起こせるのはなぜか。
|javascript|
// JS
a = 9
b = 10
c = 100
console.log(a b) // true
console.log(b c) // true
console.log(c a) // true
||
それは、プログラミング言語が数学的な振る舞い以外に色々な余計なことをするから。そのほうが便利だろうと思って、良かれと思っておせっかいを焼くから。この場合「文字列と数値を比較したときに勝手に数値に変換する」ってのね。まあ、実際にそれが便利であるケースの方が多いんだろうけども、便利な道具を深く理解しないで使っていると複雑なケースで手を咬まれるよね。そういう複雑なケースを作ってクイズにしているつもりだったりする。つまりそういうHaskellのPHPっぽい部分はどこなのかって考えるとヒントになるのかなーとか。
*1278429353*Google Gadgetを作る
気が向いたら作ろうと思って2年ほど放置していたガジェットを作る。
XMLをちょろっと書くだけだからさほど難しくなかった、
が、
間違ったXMLがキャッシュされてしまったのをクリアする方法がわからん!というわけで
|python|
Rule('/gg/defdummy', endpoint='google_gadget_definition'),
||
ってな感じでURLを自由に変えられるようにしてキャッシュをクリアしたくなったら名前変更することにした!
script src=http://www.gmodules.com/ig/ifr?url=http://4.latest.ikunozama.appspot.com/gg/def3amp;up_bgcolor=FFFFFFamp;up_asin=B000BMUVKQamp;up_nation=UKamp;synd=openamp;w=250amp;h=240amp;title=amazon.co.uk%E4%BE%A1%E6%A0%BC%E6%83%85%E5%A0%B1%3A+%E3%82%A4%E3%82%AF%E3%83%8E%E3%82%B6%E3%83%9E%EF%BC%81amp;border=%23ffffff%7C3px%2C1px+solid+%23999999amp;output=js/script
a href='http://www.gmodules.com/ig/creator?url=http://4.latest.ikunozama.appspot.com/gg/def3up_bgcolor=FFFFFFup_asin=B000BMUVKQup_nation=UKsynd=openw=250h=240amp;title=amazon.co.uk%E4%BE%A1%E6%A0%BC%E6%83%85%E5%A0%B1%3A+%E3%82%A4%E3%82%AF%E3%83%8E%E3%82%B6%E3%83%9E%EF%BC%81border=%23ffffff%7C3px%2C1px+solid+%23999999'自分のサイトにガジェットを追加/a
script src=http://www.gmodules.com/ig/ifr?url=http://4.latest.ikunozama.appspot.com/gg/def3amp;up_bgcolor=AAFFAAamp;up_asin=B000BW7I52amp;up_nation=UKamp;synd=openamp;w=250amp;h=240amp;title=amazon.co.uk%E4%BE%A1%E6%A0%BC%E6%83%85%E5%A0%B1%3A+%E3%82%A4%E3%82%AF%E3%83%8E%E3%82%B6%E3%83%9E%EF%BC%81amp;border=%23ffffff%7C3px%2C1px+solid+%23999999amp;output=js/script
うんうん、できた。なんか白い枠が出てるけどそれは本質的じゃないからまた今度気が向いた時でいいや。