On 22/01/17 10:03 PM, Wes Turner wrote:
On Sunday, January 22, 2017, Wes Turner <wes.tur...@gmail.com
<mailto:wes.tur...@gmail.com>> wrote:
Have you looked at pyrsistent for
immutable/functional/persistent/copy-on-write data structures in
Python?
https://github.com/tobgu/pyrsistent/
<https://github.com/tobgu/pyrsistent/>
(freeze() / thaw())
... e.g. List and Dict NamedTuple values are not immutable
(because append() and update() still work)
fn.py also has immutables:
https://github.com/kachayev/fn.py/blob/master/README.rst#persistent-data-structures
You seem to be thinking of "immutable object builder". Not "the builder
itself is immutable and operations on it create new builders".
On Sunday, January 22, 2017, Soni L. <fakedme...@gmail.com
<javascript:_e(%7B%7D,'cvml','fakedme%2...@gmail.com');>> wrote:
I've been thinking of an Immutable Builder pattern and an
operator to go with it. Since the builder would be immutable,
this wouldn't work:
long_name = mkbuilder()
long_name.seta(a)
long_name.setb(b)
y = long_name.build()
Instead, you'd need something more like this:
long_name = mkbuilder()
long_name = long_name.seta(a)
long_name = long_name.setb(b)
y = long_name.build()
Or we could add an operator to simplify it:
long_name = mkbuilder()
long_name .= seta(a)
long_name .= setb(b)
y = long_name.build()
(Yes, I'm aware you can x = mkbuilder().seta(a).setb(b), then
y = x.build(). But that doesn't work if you wanna "fork" the
builder. Some builders, like a builder for network connections
of some sort, would work best if they were immutable/forkable.)
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
<https://mail.python.org/mailman/listinfo/python-ideas>
Code of Conduct: http://python.org/psf/codeofconduct/
<http://python.org/psf/codeofconduct/>
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/