Skip to content

implement immutable types #13

Closed
Closed
@StefanKarpinski

Description

@StefanKarpinski

The conclusion of our last discussion on immutability versus mutability was that it is largely a psychological distinction:

  • when an object is identified by its value, then it should be immutable: integers, floats, complexes, strings;
  • when an object is a container, whose identity can remain the same while its contents change, then it should be mutable: arrays, linked list nodes, tree nodes.

To declare that a new concrete type is immutable, prefix its declaration with immutable:

immutable type Complex{T<:Real} <: Number
  re::T
  im::T
end

Alternately, only the immutable keyword could be used:

immutable Complex{T<:Real} <: Number
  re::T
  im::T
end

Metadata

Metadata

Assignees

Labels

breakingThis change will break code

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions