Polymorphic copy: Difference between revisions
Content added Content deleted
No edit summary |
(add E example) |
||
Line 114:
}
</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}}==
|