Scala の enum についての議論
Scala の enum についての一連の議論です。
・ enum の使いにくさについて
・ 静的な型付けについて
・sealed class, case class, Java の enum といった代替手段との比較など。
途中から enum とは何か、型付けとは何か、理想的な enum 云々の話に展開しています。
続きを読む
📙🔭✨NISHIMOTO Keisuke
@keisuke_n
個別の細かいところを論じてもしょうがないと思っていて、今回はenum型を多少間違って解釈していたけど、欲しいのは気軽に扱える定数かな。列挙だから特定の数で値が決まらないといけないし。ただ列挙そのものはあまり重要視してない。
2010-06-05 13:15:09
非実在naka aki
@naka_aki_spl
論点を混ぜると、壊れることもあれば生まれることもある。実のところ論点を分けてもそれは同じことであって、つまり何をやったとしても非破壊じゃないんだよね。(あえて言えばログを残せば途中からフォークすることは可能だという程度で)
2010-06-05 13:17:33
非実在naka aki
@naka_aki_spl
(再掲) Delphiとかでがっかりだったのは、case文ではObjやポインタで識別分岐させれないって点。というのはcase文が「順序型」用なので。しかしこの定義は変だと思う。caseに必要なのは「識別可能」であって「順番」はどうでもいいはずだ。同異は必要だが大小は不要だ。
2010-06-05 13:20:20
kmizu
@kmizu
自分としては、sealed trait + case classesの構文糖があればそれで十分。MLとかHaskellのvariantっぽく書ける構文を用意して、sealed trait + case classesに展開するとか。
2010-06-05 13:23:23
📙🔭✨NISHIMOTO Keisuke
@keisuke_n
とりあえず全体的な話はこんなところです。あとは議論の過程でいくつか日記にまとめてますが。また時間があれば追記します。
2010-06-05 13:23:23
kmizu
@kmizu
@keisuke_n うーん。自分の場合は、まず、「理想はココ」の前に、現状認識の点で食い違いを感じたので、その辺の疑問を解決しておきたかったのです。別に無意味に細かくこだわってたわけではなく。
2010-06-05 13:24:21
📙🔭✨NISHIMOTO Keisuke
@keisuke_n
個人的にはsealedほげで十分。 @kmizu も言ってたけどこれのシンタックスシュガーがあればいい。ただ文法追加がいいとは思わないのでシンタックスシュガーについてはまぁやめておいたほうがいいと思ってる。
2010-06-05 13:36:02