Polymorphic copy: Difference between revisions

Content added Content deleted
No edit summary
(add E example)
Line 114: Line 114:
}
}
</lang>
</lang>

=={{header|E}}==

In E, a generic copy for all objects can be built out of the serialization facility, by connecting an object recognizer to an object builder without even using any intermediate serialized form:

<lang e>def deSubgraphKit := <elib:serial.deSubgraphKit>

def copy(object) {
return deSubgraphKit.recognize(object, deSubgraphKit.makeBuilder())
}</lang>

Since E does not have any static dispatch, this cannot be non-polymorphic without also being non-generic. An example showing that it does indeed make copies.

<lang e>? def a := [1].diverge()
# value: [1].diverge()

? def b := copy(a)
# value: [1].diverge()

? b.push(2)
? a
# value: [1].diverge()

? b
# value: [1, 2].diverge()</lang>

(When I have time I will design a usage example which better conforms to the task description. --[[User:Kevin Reid|Kevin Reid]] 04:12, 1 March 2009 (UTC)) [[Category:E examples needing attention]]


=={{header|Java}}==
=={{header|Java}}==