Everyone,

As a former Python addict, I recently found myself wanting to generate
a copy of an immutable object with only a single or a few values
changed.  I tried to find an answer to this question but either my
search query skills or my lack of energy towards the end of my workday
hindered me.

Concretely, is there a nice idiomatic way to achieve the following.

    immutable Foo
        a::Int
        b::Int
        c::Int
    end

    o = Foo(17, 17, 17)
    p = Foo(o.a, 4711, o.c)

When you know that you want to replace the value for `b`, without
having to explicitly enumerate the fields for which you simply want to
copy the previous value.   For Python and named tuples, the operation
would be `_replace`. [1]

Regards,
    Pontus

[1]: 
https://docs.python.org/3/library/collections.html#collections.somenamedtuple._replace

Reply via email to