Diary?::2006-02-14

20:15

葬式が終わった。法的な、あるいは宗教的な意味での父親は今日死んだが、社会的な意味では十数年前に死んでいた。いまさらなんの感慨も湧かない。

21:02

承前

もしも Python に完全な多値 (タプルで戻すのでは無い) が存在したとしたら、それで何か問題が起こるのか考えてみる。

最初に思い付くのは、というか唯一問題になりそうなのは状況によって関数の返す値の数に差が出てしまうかも、ということだろう。でもそれってそういう書き方した奴がバカってことで投げっ放しにしてもいい気がする。俺はたとえ動的型の言語でも出来るだけ関数が返す値は型について一貫性を持っていた方がいいと思うし、例えばエラーが起こったら例外投げればいいじゃないかとも思う (None や False をエラー値に使うのは全く好きでは無い。ちなみにその観点からは書き直したいモジュールが山ほどある)。タプルや多値をテンポラリな構造体と解釈すれば (そういう使い方じゃない?) 、関数が返すタプルや多値にバラツキがあるのはいい設計ではないと思う。

じゃあ完全な多値が実現されて何が嬉しいかというと、前に書いたように関数に値を渡すときにアンパックをしなくても済む、といった程度だろう。確かに n-in, 1-out では対称性の観点からは美しくないのかもしれないけれど、俺が思うに Python は多分そういう概念的な意味での美しさを目指した言語ではなく、実用性とかそういう機能美を目指している言語なのだろう。だから別に完全な多値がなくてタプルをアンパックして多重代入でも、実用上は致命的な問題を引き起こさないだろうからそれでいい。と思う。

22:58

ここ最近たて込んでいたから、部屋がまるでアウトサイダーものの漫画の主人公の部屋みたいになっている。明日は大掃除だな。

23:37

世の中には三種類の人間がいる。相手よりも幸福になることで復讐を果たす者、自分よりも不幸な目にあわせることで復讐を果たす者、その両方を求める者。

俺がロマンを感じるのは二つめだ。

Written by Kuwata Chikara
Creative Commons