ToDo:
なんというか、そのうち list でも tuple でも ndarray でも良いみたいな感じになったあげく、そのくらいなら別に良いことも多いんだが、 data iterator みたいなのが来ると終わりですね、みたいなことになりがち。そしてそういう関数に str を渡したら破滅する
すごい generic なので dict でも list でも、それらの tuple でも受けれますよみたいな関数を作ると、まあそれも大混乱でたいてい考え忘れがある
duck typing そのものが悪いという気はしてないのだけど、関数 bar が foo を list を引数に呼んでるとして、新しく baz が str で foo を呼んでしまったエラーを見た時、「baz が str を foo に渡したのが悪い」と考えるより「foo が str もサポートしてないのがいけないし、サポートすると便利に違いない」と考える人が多い気がしていて、この現象にある程度機械的に待ったをかける手段として、 structual|nominal subtyping が良いみたいな気分になったりする
一方で reflection (具体的には isinstance と hasattr) が無い duck typing な言語があれば、それは割と機能する?みたいな気もする。つまり静的型は必須、と思ってたんだけど、動的型を問いあわせる手段が無ければ動的型でも割とコード書けたりするのかな?と思ったという話
(03:24)
前 | 2022年 4月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。