2016-12-21 4 views
2

クロージャがimmutablesをどう扱うかについての私の理解の大部分は、thisから来ます。これは私にとって本当に賢いようです。 1つの値をコピーしたり変更したり、コレクションの最後に新しい値を加えるなど、変更可能なオブジェクトの場合とほぼ同じくらい迅速に処理します。しかし、私が理解しているところでは、immutablesに大きく依存する他の多くの言語は、この種の構造(Haskell、Scalaなど)を使用しません。何故ですか?そのような木構造に欠点があるのか​​、それとも比較的最近の考えですか?なぜClojuresのような不変モデルを使用する言語は多くありませんか?

+0

良い質問ですが、話題になっているかどうかわからないので、私はアップウォートに躊躇します。 –

+0

私はPythonでこれを望んでいました。 Pythonでコードを書く方法を根本的に変えるだろう。 –

+0

この質問に何かを追加して、あなたが求めているものに対して答えが「正しい」かどうかを簡単に伝えることを検討できますか? –

答えて

3

あなたのご理解は間違いです。あなたが参照しているデータ構造の種類は、という永続的なと呼ばれています。ほとんどの関数型プログラミング言語は、ScalaやHaskellを含め、少なくとも数十年前から多用されています。

まだ使用されていない主な命令言語では、後で考えられる機能プログラミングも行います。そのため、これらの言語で「不変」にしようとすると、多くの場合、主に関数型言語よりも効率が低下します。

+0

これは知っておくと良いですが、永続的なことは本当に一般的な言葉です。それらのデータ構造をもっと見てみるにはどうすればいいですか? –

+0

"永続的なデータ構造"のグーグルリングは良い結果をもたらします。クリス・オカサキは、その主題に関する正式な本を書いた。 –

+0

"は、後で考えられる" < - 'として機能します。これは、そのようなことについて主張する多くの言語を記述するのに最適なフレーズです。 –

関連する問題