型クラスの場合、最後のカインドがConstraintになるので(型がコンストラクタになる、という意味を含んでいるのだろうか)、違う気がする。データ型で、型の関数的な物も定義できるという感じか。
型クラスの場合、最後のカインドがConstraintになるので(型がコンストラクタになる、という意味を含んでいるのだろうか)、違う気がする。データ型で、型の関数的な物も定義できるという感じか。
そして俺の中でのRustの意識はさらに変わった。 「Rustは寧ろオブジェクト指向型言語(OOL)として認識してはいけない」
俺は最初Rustを本当に理解できなかったのだが、その大きな理由が「RustをOOLとして認識しているから」だと思った。今思えば俺が悩んだところ、全部OOLとして認識してたところやん・・・。 そしてOOLとして認識した結果、むしろRustの理解の妨げになっていたというね。
しかしHaskellについて理解してくると、Rustの理解がより深まってきているし、むしろOOLの知識があまり役立たない。むしろOOLではなく、非純粋な関数型言語として認識するべきだと思う。Rustとオブジェクト指向は切り離して考えたほうが、理解しやすくなるんじゃないかと思った。
一応言っておくが、OOLとして考えたときのRustを批判したいわけではないし、OOLを貶したいわけではない。ただ、Rustを最初OOLとして認識していたのは、悔い改めるべきだなぁと思った。Haskellを学んでおけば、すぐにわかったかもしれないことだった。
@excelspeedup OOLのような部分が、ほぼすべてHaskellから影響を受けているんじゃないかと思います。 Rustでのstruct、enumがHaskellの列挙型、直積型、直和型として解釈できますし、RustのトレイトはほぼまんまHaskellの型クラスです。
あとRustで難関になってくるのが、借用とか所有権とかライフタイムだけど、これはさすがにHaskellではカバーしきれないかも。Cのポインタを理解したほうが早いと思う。
OpenCV、めっちゃ容量食っていたのだけど、OpenCV-Pythonで使われているのがinstallフォルダの部分だけってことがわかったのでそれ以外をすべて削除したらめっちゃスッキリした。VC++も確か6GBぐらい食うけど、これはないとRustとかPython環境が使い物にならないので、しょうがないね。
わかってるとは思うが、VC++が必要なのはWindows版の話ね。LinuxやMacなどのUnix系では必要ない(MacをUnix系って呼ぶとマサカリが飛びそうだけど許して)。
最近になって白身魚のすばらしさに気づき始めた。俺ももう年かな。 そんなことより肉だ肉!肉をくれ!!