2007-12-26 :-(
_ 朝ったー
0540 起床。だる。
_ [塊ステキ魂][ビューテイフル塊魂]通勤ったー
ビューテイフル塊魂 オリジナル・サウンドトラック「塊ステキ魂」
ゲーム未プレイ。以下歌手の方々。
- 宇都宮隆
- IM@S ALLSTARS
- 松本伊代
- 鈴木蘭々
- 平山あや
- 石川ひとみ
- イトクボ
- 杏子
- 堀越のり
- 斉藤由貴
作曲者は「 U 」と「 T 」の 2 人です。U はおそらく三宅優さんです。T はどなたでしょう。歌の歌詞は塊魂に因んだものになっているものもあります。TM NETWORK の歌をよく聴いていた私としては宇都宮隆さんの歌はかなりうれしいです。松本伊代さんの落ち着いたた歌声や堀越のりさんの POP な歌が印象的です。
B000WC7IYC
_ 仕事
0830 出勤。
_ 自分の日記をフィードリーダーに登録してないひとはけっこう居るんだろうか
というのを akio0911 さんのところを読んで思った。
_ 年末年始の行動予定
イヴァリースに居ます。
_ 劣等感駆動
気づけばマイミクシィがけっこうな人数になっていますが( mixi )マイミクシィを見渡すと、私がもっともたいしたことが無いということを実感できます。これが id:naoya が言っていた( 劣等 )コンプレックスか!
ref. ITpro Challenge! 「ベンチャー指向プログラマ」伊藤直也[ 2007-09-07 ]
_ [リスト][例外][Unix][パイプライン]空のリストは何を返すべきか?
オブジェクト倶楽部クリスマスイベント2007[ 2007-12-21 ]のときのたしか OO 厨厨トレインのときだと思うんですが以下のような問いがありました。
- リストがある
- リストが空のときに
- 0 を返すべきか
- NULL を返すべきか
NULL はプログラミング言語 C で言う NULL であるわけではありません。ようするに「例外的な値を返すかべきか」という問いでした。「0 を返すべきだと思うひとは挙手してください」「「NULL を返すべきだと思うひとは挙手してください」という問いでした。私は「NULL を返すべきである」で挙手しました。脊髄反射で挙手しました。出題者からの正解は無かったので正解は明らかではなかったのすが、改めて考えてみました。
正しい答えは「0 を返すべき」です。「NULL を返すべきではない」です。「例外的な値を返すべきではない」です。それはなぜか?例外的な処理を書かなくて済むからです。
たとえば以下のようなコードがあります。リストというか Array クラスなんですが「空の要素の何か」と考えてください。Ruby では要素が空の場合でもとくに例外的な値を返しません。要素が空の場合を例外的に扱わないことにより、要素が空であろうとなかろうと同じ処理を書けます。
#!/usr/pkg/bin/ruby puts "list0" list0 = [ ] list0.each {|l| p l } puts "list1" list1 = [ 0, 1, 2, 3, 4 ] list1.each {|l| p l }
実行。
% ./list.rb list0 list1 0 1 2 3 4
いまさら思い出したんですが、「空の要素でも例外的な値を返さない」というのは Unix を使っていると自然に身に付く習慣です。たとえば grep は、指定したパターンの文字列が見つからなかったとしても「見つからなかったよ!」とか「not found」などと出力しません。何も出力しません。そのようなことは「余計なお世話」なのです。Unix のツールを使っているときはたいていパイプラインを使います。grep が余計な出力をしたら、grep の次の処理は本来の処理以外に余計な処理も書くことになります。
LTですね。<br>ちなみにお恥ずかしながら、元ネタは僕です。僕が(空リストを返さずに)NULLを返すべきとプロジェクトで発言してちょっとした騒動になったのを、あの場でわざわざ蒸し返してくれました。。。<br>当然ながら、例外的な意味を持たないのであればNULLじゃない方がいいようですね。
m_pixyさん:<br>ぬあ。LTでしたか。空のリストの話題があったことは覚えてるんですが、誰が話していたか覚えてません ^^;<br><br>オブジェクト倶楽部の当日は、プログラミング言語 C での open() などの「正常な場合はファイルディスクリプタを返す。異常な場合は -1 を返す。エラー番号は errno に格納される」といった関数を使うとき(または設計するとき)と同じように考えました。なので「NULLを返すべき」に挙手したのだけど、考えてみると「空のリスト」であってもそれが設計としてエラーではないならば「空リストを返す」ほうが望ましいのかなと考え直しました。