7
Data.Array
のdocumentation読み取り:Data.Arrayの速さはどれくらいですか?
Haskellは、そのドメイン 整数の連続するサブセットに同形である 関数と考えることができるインデックス可能なアレイを提供します。このように制限された機能は、効率的に実装することができます( )。特に、プログラマは、コンポーネントに迅速にアクセスすることを合理的に期待することがあります( )。
(!)
と(//)
はどれくらい速いのですか? O(1)の複雑さから、私は彼らの命令的な対応者と同じようなものがあると思いますか?
'(//)'は配列の新しいコピーを作る必要があるので、実際にはarray_の_sizeのリニアです。しかし、変更可能な配列を使用すると、更新の数が線形であることが期待されます。 – hammar
@ハマーそれはリストを反復するだけでなく、配列をコピーする必要があるので、両方とも線形です。しかし、一括更新機能を必要としないので、MArrayではむしろ無駄です。 – alternative
はい、もちろんです。しかし、いくつかの要素を複数回更新している場合は、それは本当に問題になります。 – hammar