ちなみにScalaは必要なときに必要な箇所だけミュータブルにできるよ
スクリプト言語に限らず、標準はimmutable含む安全側で、パフォーマンス欲しいときだけリミットブレイクできる設計のほうが資源が潤沢で課題は複雑な現代向けだよね
提供されている。Pythonのtupleはimmutableかつrandom access O(1)可能な配列がバックエンド。ScalaのVectorは配列じゃないのでタイトルも変。あとmutability の話とセマンティクス(copy/value/参照等)の話の区別がついておらず支離滅裂です
コンテナ/コレクションの変更可能性と、コピー・参照の演算子の表記が言語によって異なるという2つの問題が混在していてややこしい、というのは理解できる
scalaのvectorって特殊なデータ構造になってて、imutableだけど末尾や先頭への要素追加がならしで0(1)ということを知らなかった、確かにこういうのがスクリプト言語にあってもいいかもしれない
C++の場合vectorがというより代入演算子がコピーだという慣習が確立しているから…これは正確にはコピーコンストラクタか
逆に倒しちゃうと全コピーのクソ遅コードが量産されそうでえらいこっちゃになるから今のままでいいのでは。
この人のお陰でPHP4のオブジェクトまで copy on write だった時代を思いだした
C++ で immutable な配列といえば生配列も std::array もあるのに std::vector を使うのは無知だし、参照や代入演算子とかコピーコンストラクタら辺の知識も整理できてないので言いたい事が意味不明になっている。
誰でも書けるスクリプト言語は、immutable な配列を提供すればよかった
ちなみにScalaは必要なときに必要な箇所だけミュータブルにできるよ
スクリプト言語に限らず、標準はimmutable含む安全側で、パフォーマンス欲しいときだけリミットブレイクできる設計のほうが資源が潤沢で課題は複雑な現代向けだよね
提供されている。Pythonのtupleはimmutableかつrandom access O(1)可能な配列がバックエンド。ScalaのVectorは配列じゃないのでタイトルも変。あとmutability の話とセマンティクス(copy/value/参照等)の話の区別がついておらず支離滅裂です
コンテナ/コレクションの変更可能性と、コピー・参照の演算子の表記が言語によって異なるという2つの問題が混在していてややこしい、というのは理解できる
scalaのvectorって特殊なデータ構造になってて、imutableだけど末尾や先頭への要素追加がならしで0(1)ということを知らなかった、確かにこういうのがスクリプト言語にあってもいいかもしれない
C++の場合vectorがというより代入演算子がコピーだという慣習が確立しているから…これは正確にはコピーコンストラクタか
逆に倒しちゃうと全コピーのクソ遅コードが量産されそうでえらいこっちゃになるから今のままでいいのでは。
この人のお陰でPHP4のオブジェクトまで copy on write だった時代を思いだした
C++ で immutable な配列といえば生配列も std::array もあるのに std::vector を使うのは無知だし、参照や代入演算子とかコピーコンストラクタら辺の知識も整理できてないので言いたい事が意味不明になっている。